av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

linux執(zhí)行腳本shell與子shell

本文主要介紹以下幾個命令的區(qū)別:

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、興安ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的興安網(wǎng)站制作公司

  • shell
  • subshell
  • source
  • $ (commond)
  • commond

Linux執(zhí)行Scripts有兩種方式,主要區(qū)別在于是否建立subshell

1. source filename or . filename

不創(chuàng)建subshell,在當前shell環(huán)境下讀取并執(zhí)行filename中的命令,相當于順序執(zhí)行filename里面的命令

2. bash filename or ./filename

創(chuàng)建subshell,在當前bash環(huán)境下再新建一個子shell執(zhí)行filename中的命令子shell繼承父shell的變量,但子shell不能使用父shell的變量,除非使用export【備注:這和命名空間是相似的道理,甚至和c中的函數(shù)也有些類似】

子Shell從父Shell繼承得來的屬性如下:

  • 當前工作目錄
  • 環(huán)境變量
  • 標準輸入、標準輸出和標準錯誤輸出
  • 所有已打開的文件標識符
  • 忽略的信號

子Shell不能從父Shell繼承的屬性,歸納如下:

  • 除環(huán)境變量和.bashrc文件中定義變量之外的Shell變量
  • 未被忽略的信號處理

3. $ (commond)

它的作用是讓命令在子shell中執(zhí)行

4. commond

$(commond)差不多。【這里的“ ` ”符號是撇(反單引號),不是單引號,是鍵盤上Esc按鍵下面的那個鍵?!?/p>

5. exec commond

替換當前的shell卻沒有創(chuàng)建一個新的進程。進程的pid保持不變作用:shell的內(nèi)建命令exec將并不啟動新的shell,而是用要被執(zhí)行命令替換當前的shell進程,并且將老進程的環(huán)境清理掉,而且exec命令后的其它命令將不再執(zhí)行。當在一個shell里面執(zhí)行exec ls后,會列出了當前目錄,然后這個shell就自己退出了。(后續(xù)命令不再執(zhí)行)因為這個shell已被替換為僅執(zhí)行l(wèi)s命令的進程,執(zhí)行結(jié)束自然也就退出了。需要的時候可以用sub shell 避免這個影響,一般將exec命令放到一個shell腳本里面,用主腳本調(diào)用這個腳本,調(diào)用點處可以用bash a.sh(a.sh就是存放該命令的腳本),這樣會為a.sh建立一個sub shell去執(zhí)行,當執(zhí)行到exec后,該子腳本進程就被替換成了相應(yīng)的exec的命令。


當前文章:linux執(zhí)行腳本shell與子shell
分享地址:http://uogjgqi.cn/article/dpidido.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流