国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Linux Shell > 正文

詳解Shell腳本中調(diào)用另一個(gè)Shell腳本的三種方式

2020-07-26 23:25:13
字體:
供稿:網(wǎng)友

主要以下有幾種方式:

Command Explanation
fork 新開一個(gè)子 Shell 執(zhí)行,子 Shell 可以從父 Shell 繼承環(huán)境變量,但是子 Shell 中的環(huán)境變量不會(huì)帶回給父 Shell。
exec 在同一個(gè) Shell 內(nèi)執(zhí)行,但是父腳本中 exec 行之后的內(nèi)容就不會(huì)再執(zhí)行了
source 在同一個(gè) Shell 中執(zhí)行,在被調(diào)用的腳本中聲明的變量和環(huán)境變量, 都可以在主腳本中進(jìn)行獲取和使用,相當(dāng)于合并兩個(gè)腳本在執(zhí)行。

第一種:fork 特點(diǎn):會(huì)生成子PID而且可重復(fù)被調(diào)用。

  ♦fork 是最普通的, 就是直接在腳本里面用 path/to/foo.sh 來調(diào)用

  ♦foo.sh 這個(gè)腳本,比如如果是 foo.sh 在當(dāng)前目錄下,就是 ./foo.sh。運(yùn)行的時(shí)候 terminal 會(huì)新開一個(gè)子 Shell 執(zhí)行腳本 foo.sh,子 Shell 執(zhí)行的時(shí)候, 父 Shell 還在。子 Shell 執(zhí)行完畢后返回父 Shell。 子 Shell 從父 Shell 繼承環(huán)境變量,但是子 Shell 中的環(huán)境變量不會(huì)帶回父 Shell。

1.進(jìn)入 編輯:

 [root@localhost ~]# vim liqiang-2.sh

2.編輯內(nèi)容調(diào)用寫法:

echo 在這里調(diào)用./liqiang.sh

3.輸出結(jié)果

[root@localhost ~]# ./liqiang-2.sh

在這里調(diào)用
hollo
hollo

第二種:exec 特點(diǎn):exec調(diào)用一次之后的所有代碼都不執(zhí)行

  ♦exec 與 fork 不同,不需要新開一個(gè)子 Shell 來執(zhí)行被調(diào)用的腳本. 被調(diào)用的腳本與父腳本在同一個(gè) Shell 內(nèi)執(zhí)行。但是使用 exec 調(diào)用一個(gè)新腳本以后, 父腳本中 exec 行之后的內(nèi)容就不會(huì)再執(zhí)行了。這是 exec 和 source 的區(qū)別.

1.編輯內(nèi)容調(diào)用寫法:

echo 在這里調(diào)用 ./liqiang.shecho 這里是exec函數(shù)調(diào)用exec ./liqiang-3.shecho 這里是sourcesource liqiang-4.shecho 在這里調(diào)用./liqiang.shecho 這里是exec函數(shù)調(diào)用exce liqiang-3.shecho 這里是sourcesource liqiang-4.shecho 在這里調(diào)用./liqiang.shecho 這里是exec函數(shù)調(diào)用exce liqiang-3.shecho 這里是sourcesource liqiang-4.sh

2.輸出結(jié)果:特點(diǎn)在于執(zhí)行了第一個(gè)exec之后下面的就再也不執(zhí)行了。

[root@localhost ~]# ./liqiang-2.sh在這里調(diào)用hollohollo這里是exec函數(shù)調(diào)用看看這里調(diào)用幾次調(diào)用一次就對了

第三種:sourcesource特點(diǎn)不會(huì)生成子PID也就是子進(jìn)程,他就行把被用的腳本拷貝到當(dāng)前shell腳本中執(zhí)行,可以重復(fù)被調(diào)用。

  ♦與 fork 的區(qū)別是不新開一個(gè)子 Shell 來執(zhí)行被調(diào)用的腳本,而是在同一個(gè) Shell 中執(zhí)行. 所以被調(diào)用的腳本中聲明的變量和環(huán)境變量, 都可以在主腳本中進(jìn)行獲取和使用。

1.編輯內(nèi)容調(diào)用寫法:

echo 在這里調(diào)用./liqiang.shecho 這里是exec函數(shù)調(diào)用這次被注釋掉了#exec ./liqiang-3.shecho 這里是sourcesource liqiang-4.shecho 在這里調(diào)用./liqiang.shecho 這里是exec函數(shù)調(diào)用被注釋掉了#exce liqiang-3.shecho 這里是sourcesource liqiang-4.shecho 在這里調(diào)用./liqiang.shecho 這里是exec函數(shù)調(diào)用exec liqiang-3.shecho 這里是sourcesource liqiang-4.sh 

♦2.執(zhí)行結(jié)果:

[root@localhost ~]# ./liqiang-2.sh在這里調(diào)用hollohollo這里是exec函數(shù)調(diào)用這次被注釋掉了這里是source看看這里調(diào)用幾次沒有限制就對了在這里調(diào)用hollohollo這里是exec函數(shù)調(diào)用被注釋掉了這里是source看看這里調(diào)用幾次沒有限制就對了在這里調(diào)用hollohollo這里是exec函數(shù)調(diào)用#之后的沒被調(diào)用了

注意:

  ♦source方式的結(jié)果是兩者在同一進(jìn)程里運(yùn)行。該方式相當(dāng)于把兩個(gè)腳本先合并再運(yùn)行。

  ♦給多個(gè)腳本賦權(quán)限

chmod a+x liqiang-2.sh liqiang-3.sh liqiang-4.sh

到此這篇關(guān)于詳解Shell腳本中調(diào)用另一個(gè)Shell腳本的三種方式的文章就介紹到這了,更多相關(guān)Shell調(diào)用另一個(gè)Shell腳本內(nèi)容請搜索武林網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持武林網(wǎng)!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 江安县| 嫩江县| 铅山县| 疏勒县| 易门县| 日土县| 抚州市| 阜康市| 金华市| 高雄市| 东莞市| 宁城县| 古丈县| 泉州市| 贵定县| 兴义市| 桦甸市| 泗水县| 绵阳市| 正安县| 咸阳市| 巫山县| 廊坊市| 曲周县| 治多县| 那曲县| 西林县| 沽源县| 永寿县| 伊金霍洛旗| 孝昌县| 陈巴尔虎旗| 五寨县| 亚东县| 三都| 巴彦淖尔市| 太仓市| 中阳县| 吉隆县| 金寨县| 新平|