0
A
回答
1
該腳本將只退出它正在運行的shell。當您執行./abc
時,父shell會分叉並運行一個子shell,其中運行./abc
。 只是要位更加明顯有關子shell退出,請看下面的例子:
#!/bin/bash
echo hi
(exit)
echo hello
版畫既hi
和hello
。 exit
發生在子外殼中。所以,腳本不會退出,因此最後的echo hello
被執行。
要查看自己也退出腳本,儘量
#!/bin/bash
echo hi
exit
echo hello
運行此腳本的輸出將只是「嗨」;退出命令在達到echo hello
之前終止腳本(但不終止運行在終端中的shell)。
+0
有幫助,但是請注意,(非源代碼)腳本不是_subshell_,而是_a子進程碰巧運行另一個shell instance_(具體的shell /可執行文件由腳本的shebang行確定或不存在,並且可能是不同的shell)。 這個區別很重要,因爲一個真正的子shell(如你的'(exit)'例子)有一個當前shell環境的副本(繼承所有變量,別名,函數......),這不是shell的真實情況用於運行腳本的實例。 – mklement0
相關問題
- 1. php腳本執行但沒有輸出
- 2. 有沒有辦法退出Greasemonkey腳本?
- 3. Python腳本沒有在crontab中執行
- 4. system.import腳本沒有在Angular中執行
- 5. 有條件退出/中止shell腳本執行
- 6. 有沒有辦法在退出時執行命令(無論腳本如何退出)?
- 7. PHP腳本沒有執行
- 8. 退出Python Webdriver腳本沒有錯誤
- 9. bash:退出程序執行,但在退出腳本後關閉程序
- 10. 退出(退出)執行
- 11. 如何在ssh會話退出時執行腳本?
- 12. 如何讓bash在每次退出時執行腳本?
- 13. 起點沒有執行我的腳本
- 14. Bash腳本沒有執行命令
- 15. 有沒有辦法在IDE中執行Selenium腳本?
- 16. shell腳本退出
- 17. 退出PowerShell腳本
- 18. 爲什麼我的bash腳本執行另一個腳本不能退出?
- 19. bash。從另一個執行一個腳本並退出
- 20. shell腳本:執行命令的退出狀態不正確
- 21. 執行shell腳本的退出狀態碼
- 22. 從Java執行Perl腳本tomcat返回255退出代碼
- 23. 搬運工容器python腳本執行後立即退出
- 24. 如何進入root shell,執行命令,退出並繼續執行腳本?
- 25. 有沒有辦法回滾並退出錯誤的psql腳本?
- 26. 我退出()腳本,但它不退出
- 27. 茉莉花單元測試沒有在phantomjs腳本中執行
- 28. 在python中執行腳本
- 29. 在Python中退出腳本命令
- 30. 如何在Spyder中退出腳本?
因爲腳本運行在它自己的子shell中。你退出了這個子shell,而不是運行該腳本的父shell。 –
嘗試'。 。/ abc',如果你真的想讓它退出你的終端... – twalberg