好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 在Shell腳本中調用另一個腳本的三種方式講解

在Shell腳本中調用另一個腳本的三種方式講解

熱門標簽:房產證地圖標注的兩個面積 北京電銷機器人對市場的影響 武漢語音電銷機器人加盟 地圖標注x是啥意思 湖北孝感如何辦理 輝縣市地圖標注 同花順電話機器人微信 威海電銷外呼系統好用嗎 外呼系統的合法性

先來說一下主要以下有幾種方式:

  • fork: 如果腳本有執行權限的話,path/to/foo.sh。如果沒有,sh path/to/foo.sh。
  • exec: exec path/to/foo.sh
  • source: source path/to/foo.sh

fork

fork 是最普通的, 就是直接在腳本里面用 path/to/foo.sh 來調用 foo.sh 這個腳本,比如如果是 foo.sh 在當前目錄下,就是 ./foo.sh。運行的時候 terminal 會新開一個子 Shell 執行腳本 foo.sh,子 Shell 執行的時候, 父 Shell 還在。子 Shell 執行完畢后返回父 Shell。 子 Shell 從父 Shell 繼承環境變量,但是子 Shell 中的環境變量不會帶回父 Shell。

exec

exec fork 不同,不需要新開一個子 Shell 來執行被調用的腳本. 被調用的腳本與父腳本在同一個 Shell 內執行。但是使用 exec 調用一個新腳本以后, 父腳本中 exec 行之后的內容就不會再執行了。這是 exec source 的區別.

source

fork 的區別是不新開一個子 Shell 來執行被調用的腳本,而是在同一個 Shell 中執行. 所以被調用的腳本中聲明的變量和環境變量, 都可以在主腳本中進行獲取和使用。

其實從命名上可以感知到其中的細微區別,下面通過兩個腳本來體會三種調用方式的不同:

第一個腳本,我們命名為 1.sh:

#!/usr/bin/env bash
A=1
echo "before exec/source/fork: PID for 1.sh = $$"
export A
echo "In 1.sh: variable A=$A"
case $1 in
    --exec)
        echo -e "==> using exec…\n"
        exec ./2.sh ;;
    --source)
        echo -e "==> using source…\n"
        . ./2.sh ;;
    *)
        echo -e "==> using fork by default…\n"
        ./2.sh ;;
esac
echo "after exec/source/fork: PID for 1.sh = $$"
echo -e "In 1.sh: variable A=$A\n"

第二個腳本,我們命名為 2.sh

#!/usr/bin/env bash
echo "PID for 2.sh = $$"
echo "In 2.sh get variable A=$A from 1.sh"
A=2
export A
echo -e "In 2.sh: variable A=$A\n"

注:這兩個腳本中的參數 $$ 用于返回腳本的 PID , 也就是進程 ID。這個例子是想通過顯示 PID 判斷兩個腳本是分開執行還是同一進程里執行,也就是是否有新開子 Shell。當執行完腳本 2.sh 后,腳本 1.sh 后面的內容是否還執行。

chmod +x 1.sh 2.sh 給兩個腳本加上可執行權限后執行情況:

fork

fork 方式可以看出,兩個腳本都執行了,運行順序為1-2-1,從兩者的PID值(1.sh PID=82266, 2.sh PID=82267),可以看出,兩個腳本是分成兩個進程運行的。

exec

exec 方式運行的結果是,2.sh 執行完成后,不再回到 1.sh。運行順序為 1-2。從pid值看,兩者是在同一進程 PID=82287 中運行的。

source

source方式的結果是兩者在同一進程里運行。該方式相當于把兩個腳本先合并再運行。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

您可能感興趣的文章:
  • Java程序去調用并執行shell腳本及問題總結(推薦)
  • Spring Boot調用 Shell 腳本實現看門狗功能
  • 詳解Shell腳本中調用另一個Shell腳本的三種方式
  • Java遠程調用Shell腳本并獲取輸出信息【推薦】
  • JAVA如何調用Shell腳本
  • Shell腳本中引用、調用另一個腳本文件的2種方法
  • Java調用linux shell腳本的方法
  • Nodejs中調用系統命令、Shell腳本和Python腳本的方法和實例
  • Shell腳本調用另一個腳本的三種方法

標簽:蚌埠 迪慶 武威 麗江 紹興 西寧 安康 日喀則

巨人網絡通訊聲明:本文標題《在Shell腳本中調用另一個腳本的三種方式講解》,本文關鍵詞  在,Shell,腳本,中,調用,另一個,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在Shell腳本中調用另一個腳本的三種方式講解》相關的同類信息!
  • 本頁收集關于在Shell腳本中調用另一個腳本的三種方式講解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 性xxxxfreexxxxx欧美丶| 做饭的时候老公也要| 人妻精品久久久久中文字幕69| 史上最强内线| 男人看的网站| 打屁股play扇肿| 在线高清h视频在线观看| japanesevideo国产在线| 99色在线| 91色在线| 久久人人添人人爽添人人片牛牛| 中国女人黄色片| 我的女友小莹| 男女艹逼视频| 99riAV精品视频无码| 哒哒哒www视频在线观看免费直播| www.52g·app网址入口| 国产欧美精品一区二区| 黄色一及片| 1024你懂的金沙人妻片| 想让男人操| 性快感与后遗症| 91美团外卖38分钟完整版| R星成人网站| 暖暖国产一区二区三区| 一区二区美女视频| 欧美jizz40性欧美| 亚洲乱码国产乱码精品精98 | 一级全全黄国产三级| 嗯嗯啊啊爽| 伊人精品视频在线| 国产caoni视频在线观看| 黄色app下载| 国产良妇出轨视频在线观看| 激性欧美激情在线观看| 成人嫩草影院免费观看| 国产精品无码视频毛片韩国| 日本夫妇交换456高清| 国外B站推广网站| 阿娇与冠希13分钟49秒| 爷女乱|