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

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

exec和source的區(qū)別

2019-11-14 17:50:21
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

source 就是讓 script 在當(dāng)前 shell 內(nèi)執(zhí)行、而不是產(chǎn)生一個(gè) sub-shell 來(lái)執(zhí)行。由
exec 也是讓 script 在同一個(gè)行程上執(zhí)行,但是原有行程則被結(jié)束了。

 source ./my.script
 或: . ./my.script
 也就是簡(jiǎn)而言之:原有行程會(huì)否終止,就是 exec 與 source/fork 的最大差異了。

代碼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 ;;  #執(zhí)行完成后結(jié)束        source)                echo "using source...."                . ./2.sh ;;  #執(zhí)行完成后繼續(xù)執(zhí)行        *)                echo "using fork by default...."                ./2.sh ;;  #另起一個(gè)進(jìn)程來(lái)執(zhí)行 2.sh 執(zhí)行后繼續(xù)執(zhí)行1.shesacecho "PID FOR 1.sh after exec/source/fork :$$"echo "1.sh:/$A is $A"

 

代碼 2.sh

1 #!/bin/bash2 echo "PID for 2.sh:$$"3 echo "2.sh get /$A=$A from 1.sh"4 A=C5 export A6 echo "2.sh: /$A is $A"
View Code

修改文件權(quán)限:

1 chmod 744 1.sh2 chmod 744 2.sh

 

測(cè)試代碼:

$ ./1.sh fork $ ./1.sh source$ ./1.sh exec
View Code

結(jié)果:

# ./1.sh execPID FOR 1.sh before exec/source/fork:243941.sh:$A is Busing exec,,,,,PID for 2.sh:243942.sh get $A=B from 1.sh2.sh: $A is C# ./1.sh sourcePID FOR 1.sh before exec/source/fork:244411.sh:$A is Busing source....PID for 2.sh:244412.sh get $A=B from 1.sh2.sh: $A is CPID FOR 1.sh after exec/source/fork :244411.sh:$A is C# ./1.sh forkPID FOR 1.sh before exec/source/fork:244721.sh:$A is Busing fork by default....PID for 2.sh:244732.sh get $A=B from 1.sh2.sh: $A is CPID FOR 1.sh after exec/source/fork :244721.sh:$A is B

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平塘县| 通榆县| 榆社县| 特克斯县| 乌兰浩特市| 洮南市| 通化县| 木兰县| 闽侯县| 白水县| 宿迁市| 台安县| 郸城县| 昌宁县| 新泰市| 胶州市| 桐庐县| 光泽县| 仁布县| 合山市| 潞城市| 清远市| 怀安县| 罗源县| 崇义县| 芜湖市| 灵川县| 宁都县| 通江县| 丹巴县| 营山县| 霍城县| 都匀市| 马鞍山市| 鱼台县| 闵行区| 潞西市| 寿阳县| 嘉祥县| 定南县| 芜湖县|