bwin皇马注册欢迎您! ·设为首页 ·加入收藏 ·站点地图
当前位置: 主页 > bwin客户端 >

linux在shell脚丫儿子本中调用另壹个脚丫儿子本

2018-12-27 来源: [db:来源] 作者:[db:作者]

  bash shell的命令分为两类:外面部命令和外面部命令。外面部命令是经度过体系调用或孤立的以次完成的,如sed、awk等等。外面部命令是由特殊的文件程式(.def)所完成,如cd、history、exec等等。

  fork ( /directory/script.sh)

  比值先,我們所執行的任何程式,邑是由父亲里程(parent process)所產生出产來的壹個儿子里程(child process),儿子里程在結束後,將前往到父亲里程去。此壹現像在 Linux 系統中被稱為 fork 。

  當儿子里程被產生的時候,將會從父亲里程那裡獲得壹定的資源分派、及(更要紧的是)繼接父亲里程的環境。

  * 所謂環境變量其實坚硬是那些會傳給儿子里程的變量。

  簡單而言,"遺傳性"坚硬是區分该地變量與環境變量的決定性指標。

  条是,從遺傳的角度來看,我們也不難發現環境變量的另壹個要紧特徵:

  * 環境變量不得不從父亲里程到儿子里程單向繼接。換句子話說:在儿子里程中的環境何以變更,均不會影響父亲里程的環境。

  fork是最普畅通的, 坚硬是直接在脚丫儿子本外面面用/directory/script.sh到来调用script.sh此雕刻个脚丫儿子本.

  运转的时瓜分壹个sub-shell实行调用的脚丫儿子本,sub-shell实行的时分, parent-shellbwin在。

  sub-shell实行终了后前往parent-shell. sub-shell从parent-shell禀接环境变量.条是sub-shell中的环境变量不会带回parent-shell。儿子经过与父亲经过独壹不一的中在于pid(process id)。

  exec (exec /directory/script.sh)

  exec 亦讓 script 在相畅通個里程上執行,条是原拥有里程則被結束了。

  也坚硬是簡而言之:原拥有里程會否終止,坚硬是 exec 與 source/fork 的最父亲差異了。

  exec命令在实行时会把以后的shell process查封锁,然后换到前面的命令持续实行。(原线程被干掉落,确立壹个新线程???right?)

  source (source /directory/script.sh)

  * 所謂 source 坚硬是讓 script 在當前 shell 內執行、而不是產生壹個 sub-shell 來執行。

  由於所拥有執行結实均於當前 shell 內完成,若 script 的環境拥有所改變,當然也會改變當前環境了﹗

  ?

  与fork的区佩是不新开壹个sub-shell到来实行被调用的脚丫儿子本,而是在相畅通个shell中实行. 因此被调用的脚丫儿子本中音皓的变量和环境变量, 邑却以在主脚丫儿子本中违反掉落和运用.

  却以经度过下面此雕刻两个脚丫儿子原本体验叁种调用方法的不一:

  1.sh

  export A

  2.sh

  ?

  运转以下3个脚丫儿子原本不清雅察结实:

标签:[db:TAG标签]