Cá nhân tôi sử dụng bash
chức năng sau để làm điều này:
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"
}
Đây là những gì nó làm, theo thứ tự:
- Tạo một thư mục tạm thời (để sử dụng làm thư mục làm việc của chúng tôi trong môi trường sạch);
- Tạo một tệp tạm thời (để sử dụng làm
bash
tệp RC của chúng tôi );
- Trong tệp RC, thêm các dòng:
- Đặt
PS1
lời nhắc đến dấu kết thúc nhanh chóng theo sau là khoảng trắng, điều này giữ cho nó có liên quan trong trường hợp chúng tôi muốn có một bản sao đầu ra của chúng tôi trên trang web Hỏi & Đáp;
- Thay đổi vào thư mục tạm thời chúng tôi tạo ra.
- Gọi một thể hiện mới của
bash
, trong đó:
- Ban đầu có một môi trường trống ngoại trừ
$HOME
và $TERM
( env - ...
);
- Đọc tệp RC của nó từ tệp tạm thời mà chúng ta đã tạo trước đó (
--rcfile
).
- Khi bash đã thoát, hãy xóa các tệp tạm thời mà chúng tôi đã tạo.
Rõ ràng điều này không hoàn toàn dễ hiểu, nghĩa là bạn vẫn có thể truy cập các phần khác trong hệ thống của mình. Tuy nhiên, điều này cung cấp một môi trường tạm thời sạch mà bạn có thể sử dụng để thử nghiệm.