Я особисто використовую наступну bash
функцію для цього:
so() {
local tmpdir="$(mktemp -d)"
local tmprc="$(mktemp)"
cat > "$tmprc" << EOF
PS1='\\$ '
cd "$tmpdir"
EOF
env - HOME="$HOME" TERM="$TERM" bash --rcfile "$tmprc"
rm -rf "$tmpdir" "$tmprc"
}
Ось що це робиться для того, щоб:
- Створити тимчасовий каталог (використовувати як наш робочий каталог в чистому середовищі);
- Створити тимчасовий файл (використовувати як наш
bash
rc-файл);
- У файл rc додайте рядки, які:
- Встановіть
PS1
підказку на термінатор підказок, а потім пробіл, який залишає його актуальним у випадку, якщо ми хочемо мати копію нашого виводу на веб-сайті Q&A;
- Перейдіть до створеного нами тимчасового каталогу.
- Викликати новий екземпляр
bash
, який:
- Спочатку має порожнє середовище, крім
$HOME
і $TERM
( env - ...
);
- Зачитує його rc-файл із тимчасового файлу, який ми створили раніше (
--rcfile
).
- Як тільки bash вийшов, видаліть створені нами тимчасові файли.
Очевидно, що це не зовсім безглуздо, тобто ви все одно можете отримати доступ до інших частин вашої системи. Однак це забезпечує чисту тимчасову середу, яку ви можете використовувати для тестування.