Я особисто використовую наступну 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"
}
Ось що це робиться для того, щоб:
- Створити тимчасовий каталог (використовувати як наш робочий каталог в чистому середовищі);
- Створити тимчасовий файл (використовувати як наш
bashrc-файл);
- У файл rc додайте рядки, які:
- Встановіть
PS1підказку на термінатор підказок, а потім пробіл, який залишає його актуальним у випадку, якщо ми хочемо мати копію нашого виводу на веб-сайті Q&A;
- Перейдіть до створеного нами тимчасового каталогу.
- Викликати новий екземпляр
bash, який:
- Спочатку має порожнє середовище, крім
$HOMEі $TERM( env - ...);
- Зачитує його rc-файл із тимчасового файлу, який ми створили раніше (
--rcfile).
- Як тільки bash вийшов, видаліть створені нами тимчасові файли.
Очевидно, що це не зовсім безглуздо, тобто ви все одно можете отримати доступ до інших частин вашої системи. Однак це забезпечує чисту тимчасову середу, яку ви можете використовувати для тестування.