shell脚本的exit问题(退出脚本还是退出终端)
2019獨角獸企業重金招聘Python工程師標準>>>
今天編寫shell腳本。想要程序在運行到一個地方的時候進行判斷,結果為真退出程序。運行時直接退出了SecureCRT終端。糾結了一整個上午也沒有找到解決方案。
??? 中午在同事的示范下發現并不是腳本的問題。而是執行方式的問題。
Linux執行文件有如下幾種方式:???
(1)./xxx.sh意思是執行當前目錄的a.sh文件,與輸入完整路徑執行腳本效果是一樣的。需要a.sh有可執行權限。
(2)sh xxx.sh意思是用shell解釋器來執行a.sh腳本,不要求文件有可執行權限。
(3). xxx.sh和source效果相同,作用都是使剛修改過的配置文件立即生效。
shell中使用source conf.sh,是直接運行conf.sh的命令,不創建子shell,source不是直接執行一個文件,而是從一個文本文件里面讀命令行,然后執行這些命令。我執行的時候使用了 .? XX.sh,這樣相當于直接系統讀取exit,然后退出,正確的運行方式是 ./XX.sh 或者sh XX.sh
?
sh是則創建子shell,子shell里面的變量父shell無法使用,對環境變量的修改也不影響父shell。父shell中的局部變量,子shell也無法使用,只有父shell的環境變量,子shell能夠使用.
轉載于:https://my.oschina.net/xiaominmin/blog/1584883
總結
以上是生活随笔為你收集整理的shell脚本的exit问题(退出脚本还是退出终端)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重构——39以多态取代条件表达式(Rep
- 下一篇: idea 中使用@Autowired注入