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