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

首頁 > 學院 > 開發設計 > 正文

[exec][source][fork]區別

2019-11-06 06:33:45
字體:
來源:轉載
供稿:網友

1.sh

#!/bin/bashA=Becho "PID for 1.sh before exec/source/fork:$$"export Aecho "1.sh: /$A is $A"case $1 in exec) echo "using exec..." exec ./2.sh ;; source) echo "using source..." . ./2.sh ;; *) echo "using fork by default..." ./2.sh ;;esacecho "PID for 1.sh after exec/source/fork:$$"echo "1.sh: /$A is $A"

2.sh

#!/bin/bashecho "PID for 2.sh: $$"echo "2.sh get /$A=$A from 1.sh"A=Cexport Asleep 1echo "2.sh: /$A is $A"

試驗開始

./1.sh fork

PID for 1.sh before exec/source/fork:259501.sh: $A is Busing fork by default...PID for 2.sh: 259512.sh get $A=B from 1.sh2.sh: $A is CPID for 1.sh after exec/source/fork:259501.sh: $A is B

./1.sh source

PID for 1.sh before exec/source/fork:259651.sh: $A is Busing source...PID for 2.sh: 259652.sh get $A=B from 1.sh2.sh: $A is CPID for 1.sh after exec/source/fork:259651.sh: $A is C

./1.sh exec

PID for 1.sh before exec/source/fork:259791.sh: $A is Busing exec...PID for 2.sh: 259792.sh get $A=B from 1.sh2.sh: $A is C

結論

fork使用sub-shell的方式執行子腳本, sub-shell會繼承一些父腳本的環境變量且有自己的PID, 在sub-shell中修改這些環境變量不會影響父腳本source在不會開啟sub-shell, 這種方式只是在父腳本的上下文執行子腳本中的語句, 在子腳本中修改環境變量會影響父腳本exec與source類似, 唯一的不同是, 這種方式會終止父腳本的執行
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通山县| 华宁县| 巩义市| 特克斯县| 盘山县| 枣阳市| 盘锦市| 荣昌县| 正镶白旗| 霍山县| 凤冈县| 特克斯县| 宽甸| 长乐市| 五寨县| 车致| 黑河市| 巴林右旗| 富蕴县| 社会| 柳江县| 舟山市| 金塔县| 沙洋县| 浪卡子县| 无锡市| 高台县| 太仓市| 宝应县| 沅江市| 南雄市| 盐源县| 本溪| 色达县| 仪征市| 措勤县| 瑞安市| 万盛区| 岳普湖县| 朝阳区| 抚远县|