shell实例第19讲:一个脚本中调用另一个脚本的3种方法
生活随笔
收集整理的這篇文章主要介紹了
shell实例第19讲:一个脚本中调用另一个脚本的3种方法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在Shell腳本中調(diào)用另一個(gè)腳本(3種方法)
準(zhǔn)備:主腳本是second.sh,主腳本中調(diào)用first.sh
方法1:exec(1)執(zhí)行方式:exec /home/weibo/shell_test/second.sh(2)特點(diǎn): 1)運(yùn)行主腳本時(shí)不會(huì)新開一個(gè)子shell來執(zhí)行被調(diào)用腳本first.sh,被調(diào)用的腳本與主腳本在同一個(gè)Shell內(nèi)執(zhí)行,所以被調(diào)用的腳本中聲明的變量和環(huán)境變量, 都可以在主腳本中進(jìn)行獲取和使用。2)使用exec調(diào)用一個(gè)新腳本以后, 父腳本中exec行之后的內(nèi)容就不會(huì)再執(zhí)行 方法3:source(1)執(zhí)行方式:source /home/weibo/shell_test/first.sh(2)特點(diǎn): 1)同exec的特點(diǎn)1,即運(yùn)行主腳本時(shí)不會(huì)新開一個(gè)子shell來執(zhí)行被調(diào)用腳本first.sh,被調(diào)用的腳本與主腳本在同一個(gè)Shell內(nèi)執(zhí)行。2)使用source調(diào)用一個(gè)新腳本以后, 主腳本中exec行之后的內(nèi)容還會(huì)執(zhí)行 方法3:fork(1)執(zhí)行方式:在主腳本中寫所要調(diào)用腳本的路徑,比如/home/weibo/shell_test/first.sh(2)特點(diǎn):1)運(yùn)行主腳本時(shí)會(huì)新開一個(gè)子shell來執(zhí)行腳本first.sh;2)子shell執(zhí)行的時(shí)候,父shell還在;3)子shell執(zhí)行完畢后返回父shell,但是子shell中的環(huán)境變量不會(huì)帶回父shell主腳本second.sh
#!/bin/bash #作者:魏波 #時(shí)間:2017.3.4A=100 echo "before exec/source/fork: PID for second.sh = $$" export A echo "In second.sh: variable second_variable=$A" case $1 in--exec)echo -e "==>>> using exec start\n"exec /home/weibo/shell_test/first.sh ;;--source)echo -e "==>>> using source start\n". /home/weibo/shell_test/first.sh ;;--fork)echo -e "==>>> using fork start\n"/home/weibo/shell_test/first.sh ;; esac echo "after exec/source/fork: PID for second.sh = $$" echo -e "In second.sh: variable second_variable=$A\n"被調(diào)腳本first.sh
#!/bin/bash #作者:魏波 #時(shí)間:2017.3.4echo "PID for first.sh = $$" echo "In first.sh get variable second_variable=$A from second.sh" A=200 export A echo -e "In first_variable.sh: variable first_variable=$A\n"注:這兩個(gè)腳本中的參數(shù) $$ 用于返回腳本的 PID , 也就是進(jìn)程 ID。這個(gè)例子是想通過顯示 PID 判斷兩個(gè)腳本是分開執(zhí)行還是同一進(jìn)程里執(zhí)行,也就是是否有新開子 Shell。chmod +x first.sh second.sh 給兩個(gè)腳本加上可執(zhí)行權(quán)限后執(zhí)行。
?
執(zhí)行結(jié)果:
1、驗(yàn)證方法1:exec
2、 驗(yàn)證方法2:source
3、 驗(yàn)證方法3:fork
?
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的shell实例第19讲:一个脚本中调用另一个脚本的3种方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shell实例第18讲:利用gzexe加
- 下一篇: KPI与OKR的区别