2011-08-25 19 views
29

निष्पादित करने के बाद नए खोल में रहें मुझे एक समस्या है। मैं इस उत्तर के लिए लंबे समय से खोज रहा हूं - मैं नए बैश खोल में कमांड कैसे चला सकता हूं और इस आदेश को निष्पादित करने के बाद इस नए खोल में रह सकता हूं। तो उदाहरण के लिए:नए खोल में बैश कमांड चलाएं और इस कमांड को

bash -c "export PS1='> ' && ls" 

नया खोल, पीएस 1 निर्यात, सूची निर्देशिका और ... मेरे वर्तमान खोल से बाहर निकल जाएगा। मैं नए में रहना चाहता हूं।

+1

आप हमें व्याख्या कर सकते हैं कि तुम क्या हासिल करने की कोशिश कर रहे हैं। शायद ऐसा करने का दूसरा तरीका है। – dimba

+0

@ डिम्बा मैं डैनिलो के लिए बात नहीं कर सकता, लेकिन मेरे मामले में मैं ऐप निर्देशिका में अपने वेब सर्वर, सीडी में एसएसएच करने की कोशिश कर रहा हूं, और उस ऐप के लिए रेल कंसोल खोल सकता हूं। –

+0

संभावित डुप्लिकेट [बैश को आमंत्रित करें, नए खोल के अंदर कमांड चलाएं, फिर उपयोगकर्ता को नियंत्रण दें] (http://stackoverflow.com/questions/7120426/invoke-bash-run-commands-inside-new-shell-then- देने-नियंत्रण-बैक-टू-यूजर) –

उत्तर

32

आप कोस --rcfile विकल्प से कुछ इसी तरह प्राप्त कर सकते हैं:

bash --rcfile <(echo "export PS1='> ' && ls") 

bash manpage से:

--rcfile फ़ाइल

प्रणाली विस्तृत आरंभीकरण फ़ाइल /etc/bash.bashrc और मानक व्यक्तिगत आरंभीकरण फ़ाइल के बजाय फ़ाइल से आदेश पर अमल ~/.bashrc अगर खोल इंटरैक्टिव है

+2

thx vm !! और मैं अपनी '.bashrc' फ़ाइल को आधार के रूप में उपयोग करने में सक्षम था! 'bash --rcfile <(echo" स्रोत "$ HOME/.bashrc"; निर्यात PS1 = '>' && ls ")' –

+0

यही वह है जिसे मैं ढूंढ रहा हूं। धन्यवाद! –

-2

आलसी एक:

bash -c "export PS1='> ' && ls; bash" 
+11

यह एक और खोल शुरू करता है, लेकिन नए प्रॉम्प्ट का सम्मान नहीं करता है। – Jack

संबंधित मुद्दे