मैं व्यक्तिगत रूप 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
आरसी फ़ाइल के रूप में उपयोग करने के लिए );
- आरसी फ़ाइल में, वे लाइनें जोड़ें जो:
PS1
एक स्थान के बाद शीघ्र टर्मिनेटर के लिए संकेत सेट करें , जो इसे उस स्थिति में प्रासंगिक बनाए रखता है जब हम चाहते हैं कि क्यू एंड ए साइट पर हमारे आउटपुट की एक प्रति हो;
- हमारे द्वारा बनाई गई अस्थायी निर्देशिका में बदलें।
- के एक नए उदाहरण को आमंत्रित करें
bash
, जो:
- प्रारंभ में छोड़कर के लिए एक खाली वातावरण है
$HOME
और $TERM
( env - ...
);
- हम पहले बनाई गई अस्थायी फ़ाइल से इसकी आरसी फ़ाइल पढ़ते हैं (
--rcfile
)।
- एक बार बैश निकलने के बाद, हमारे द्वारा बनाई गई अस्थायी फ़ाइलों को हटा दें।
जाहिर है कि यह पूरी तरह से मूर्ख नहीं है, अर्थात, आप अभी भी अपने सिस्टम के अन्य हिस्सों तक पहुंच सकते हैं। यह, हालांकि, एक साफ अस्थायी वातावरण प्रदान करता है जिसे आप परीक्षण के लिए उपयोग कर सकते हैं।