6
A
回答
11
你不能。對當前目錄的更改僅影響當前進程。
2
Ignacio是正確的。然而,作爲一個十惡不赦的黑客(完全不明智的,這確實應該讓我至少下降10票),你可以exec的一個新的shell時,即可大功告成
#!/bin/bash ... cd/ exec bash
5
讓我詳細說明這一點:
運行該腳本時,bash會爲其創建一個新進程,並且對當前目錄的更改只會影響該進程。
當您輸入腳本時,腳本直接由您正在運行的shell執行,而不會創建額外的進程,因此當前目錄的更改對主shell進程可見。
所以,伊格納西奧指出,這不能做
0
1
如果你真的需要這種行爲,可以使你的腳本返回的目錄,然後用它在某種程度上。喜歡的東西:
#!/bin/bash
cd /tmp
echo $(pwd)
,然後你可以
cd $(./script.sh)
醜陋,但確實在這個簡單的例子的伎倆。
+0
我同意 - 如果用戶真的需要這個,並且不能通過.bashrc函數中的函數來實現,最接近的就是運行外部腳本,然後cd到任何返回的東西 - 這意味着外部腳本不能與用戶有任何交互,因爲你正在消耗所有的輸出。這就是爲什麼William的答案似乎更加靈活一些。 mayEb stderr可以被使用 - 真的需要用戶關於用例的更多細節 – nhed 2011-03-13 05:11:45
1
這是一個愚蠢的想法。使用PROMPT_COMMAND。例如:
$ export PROMPT_COMMAND='test -f $CDFILE && cd $(cat $CDFILE) && rm $CDFILE' $ export CDFILE=/tmp/cd.$$
然後,使你的腳本是「PWD> $ CDFILE」
相關問題
- 1. bash腳本後留在當前目錄
- 2. 如何從腳本結束後保留的bash腳本產生bash子shell
- 3. Bash腳本,閱讀結束腳本?
- 4. 在Bash腳本中更改目錄
- 5. 在bash腳本中更改目錄
- 6. Bash腳本橫切目錄
- 7. bash腳本中的主目錄導航
- 8. 使用單個bash腳本在diff目錄中執行多個bash腳本
- 9. Bash腳本改變工作目錄到它所在的目錄
- 10. 腳本結束
- 11. 目錄(備份)文件的Bash腳本
- 12. Bash - 所有腳本的搜索目錄
- 13. 如何爬上bash腳本的父目錄結構?
- 14. 更好的bash腳本來創建目錄結構
- 15. 結合在bash腳本
- 16. bash腳本凍結
- 17. Bash腳本:重命名輸出目錄
- 18. Bash腳本目錄檢測和創建
- 19. bash - 獲取目錄腳本從
- 20. Bash腳本檢查多個目錄
- 21. bash腳本,目錄和用戶
- 22. Bash腳本Ping主機和目錄
- 23. 在PHP腳本中意外的$結束?
- 24. 腳本在UserDialog上結束
- 25. 結束Python腳本
- 26. 輸入一個子目錄並在bash腳本中列出它的子目錄
- 27. 如何sudo其父目錄在$ PATH中的bash腳本?
- 28. 在bash shell腳本中檢查目錄的問題
- 29. Weired「語法錯誤:文件意外結束」在bash腳本
- 30. Bash腳本:使用bash腳本中的「腳本」命令記錄會話
您的downvotes要求你賺的給予好評 – 2010-12-16 15:29:27
這將導致額外的shell中運行(您原來的最後一行)。獎勵積分,如果你也可以解決這個問題。 – Sorpigal 2010-12-16 15:34:12
即使您現在必須鍵入退出兩次以關閉終端窗口,我仍然喜歡這一個。一個改進:exec bash -l(以便您的命令提示符合理) – 2013-05-08 17:56:49