最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux中執(zhí)行Shell腳本的三種實現(xiàn)方式

 更新時間:2023年11月24日 16:52:24   作者:timchen525  
這篇文章主要介紹了Linux中執(zhí)行Shell腳本的三種實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Shell 腳本的執(zhí)行方式通常有

如下三種

  • (1)bash script-name 或者 sh script-name;
  • (2)path/script-name或者./script-name;
  • (3)sourcescript-name或者. script-name。

下面,分別介紹下這三種方式的特點:

(1)bash script-name或者sh script-name

這是當(dāng)腳本文件本身沒有可執(zhí)行權(quán)限(即文件權(quán)限屬性x位為-號)時常使用的方法,或者腳本文件開頭沒有指定解釋器時需要使用的方法。

推薦使用這種方法。

(2)path/script-name或者./script-name

指在當(dāng)前路徑下執(zhí)行腳本(腳本需要有執(zhí)行權(quán)限),需要將腳本文件的權(quán)限改為可執(zhí)行(即文件權(quán)限屬性為x位)。

具體方法為:chmod a+x script-name。然后通過執(zhí)行腳本絕對路徑或者相對路徑就可以執(zhí)行腳本了。

注意:

  • 在生產(chǎn)環(huán)境中,運維人員由于忘記為該腳本設(shè)置可執(zhí)行權(quán)限,然后直接使用,導(dǎo)致出錯。
  • 因此,推薦第一種 bashscript-name。

(3)source script-name或者. script-name

source或者“.”命令的功能是:讀入腳本并執(zhí)行腳本,即在當(dāng)前Shell中執(zhí)行source或“.”加載并執(zhí)行的相關(guān)腳本文件的命令及語句,而不是產(chǎn)生一個子Shell來執(zhí)行文件中的命令。

注意:這是和其他幾種執(zhí)行shell方式的最大不同。

舉個栗子

新建一個文件test_sh.sh,不給它賦予任何可執(zhí)行的權(quán)限x。

編輯內(nèi)容如下:

文件以及文件中內(nèi)容與常見的shell不同之處在于,這里的文件沒有賦予可執(zhí)行權(quán)限以及在文件內(nèi)容中的首行中沒有添加#!/bin/bash。

我們現(xiàn)在用上述介紹的幾種方式來測試下效果。

第二種方式 ./script-name,執(zhí)行效果如下:

報權(quán)限拒絕,Permission denied,此時,我們只要更改文件的屬性為可執(zhí)行即可。

執(zhí)行第一種bash script-name,效果如下:

可以成功執(zhí)行,輸出:hello。但是,我們輸入命令:echo $name,發(fā)現(xiàn)如下:

name的值是空的。

不難理解,bash script-name是產(chǎn)生了一個子進程shell,而我們當(dāng)前的操作還在父shel中因此得不到該變量值。

執(zhí)行第三種方法. test_sh.sh,效果如下:

可以成功的輸出變量的值。

這是因為source script-name和. script-name是將script-name中的內(nèi)容直接加載到當(dāng)前的shell,因此能夠輸出當(dāng)前變量的值。

剛才第二種方式我們執(zhí)行失敗,現(xiàn)在我們通過chmod a+x script-name,然后再次執(zhí)行上述命令,查看效果:

注意:該種方式也是產(chǎn)生了一個子進程Shell,因此echo $name仍然找不到該變量。

補充知識點

一個規(guī)范的Shell腳本在第一行會指出由哪個程序(解釋器)來執(zhí)行腳本中的內(nèi)容,這一行內(nèi)容在Linux bash的編程一般為:

#!/bin/bash

#!/bin/sh

注意:

(1)在Shell中如果一行的第一個字母是#,則是注釋,但是上面兩個是寫在第一行,所以不是腳本注釋行,如果寫在某個命令之后,則變成注釋行。

(2)sh為bash的軟鏈接,大多數(shù)情況下,腳本的開頭使用“#!/bin/bash”和“#!/bin/sh”是沒有區(qū)別的,但更規(guī)范的寫法是在腳本的開頭使用“#!/bin/bash”。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Linux 文件系統(tǒng)的操作實現(xiàn)

    Linux 文件系統(tǒng)的操作實現(xiàn)

    這篇文章主要介紹了Linux 文件系統(tǒng)的操作實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • linux服務(wù)器下配置多tomcat實現(xiàn)實例

    linux服務(wù)器下配置多tomcat實現(xiàn)實例

    這篇文章主要介紹了linux服務(wù)器下配置多tomcat的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • CentOS8.0 網(wǎng)絡(luò)配置的實現(xiàn)

    CentOS8.0 網(wǎng)絡(luò)配置的實現(xiàn)

    這篇文章主要介紹了CentOS8.0 網(wǎng)絡(luò)配置的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 詳解Ubuntu下安裝和配置Apache2

    詳解Ubuntu下安裝和配置Apache2

    本篇文章主要介紹了詳解Ubuntu下安裝和配置Apache2,小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。有興趣的朋友可以了解一下。
    2016-12-12
  • Linux使用iptables限制多個IP訪問你的服務(wù)器

    Linux使用iptables限制多個IP訪問你的服務(wù)器

    iptables是一個管理netfilter的工具。這篇文章主要介紹了Linux使用iptables限制多個IP訪問你的服務(wù)器的相關(guān)知識,需要的朋友可以參考下
    2018-10-10
  • Apache中Virtual Host虛擬主機配置及rewrite參數(shù)說明

    Apache中Virtual Host虛擬主機配置及rewrite參數(shù)說明

    這篇文章主要介紹了Apache中Virtual Host虛擬主機配置及rewrite模塊中的重要參數(shù)說明,是在同一個Apache服務(wù)器軟件上部署多個站點的基礎(chǔ)方法,需要的朋友可以參考下
    2016-03-03
  • CentOS設(shè)置精準(zhǔn)時間的方法

    CentOS設(shè)置精準(zhǔn)時間的方法

    下面小編就為大家分享一篇CentOS設(shè)置精準(zhǔn)時間的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • 基于Xshell使用密鑰方式連接遠程主機

    基于Xshell使用密鑰方式連接遠程主機

    這篇文章主要為大家詳細介紹了基于Xshell使用密鑰方式連接遠程主機的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • linux系統(tǒng)實現(xiàn)重啟網(wǎng)卡命令

    linux系統(tǒng)實現(xiàn)重啟網(wǎng)卡命令

    本文介紹了三種在Linux系統(tǒng)中重啟網(wǎng)卡的方法,包括使用服務(wù)命令、ifconfig命令以及ifdown/ifup命令,這些方法可以幫助系統(tǒng)管理員在維護或故障排除時快速恢復(fù)網(wǎng)絡(luò)連接
    2025-10-10
  • CentOS下SSH無密碼登錄的配置文件

    CentOS下SSH無密碼登錄的配置文件

    這篇文章主要介紹了CentOS下SSH無密碼登錄的配置,包括配置SSH無密碼登錄需要三個步驟,本文給大家介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下
    2016-10-10

最新評論

玉山县| 岢岚县| 宜宾县| 武宁县| 武乡县| 册亨县| 萝北县| 田林县| 福建省| 长乐市| 广汉市| 正蓝旗| 年辖:市辖区| 吴忠市| 油尖旺区| 海南省| 长治县| 铅山县| 岳池县| 昌图县| 和平区| 那曲县| 都江堰市| 陆良县| 理塘县| 台南县| 金溪县| 临朐县| 海兴县| 比如县| 阿拉善右旗| 报价| 孝感市| 木里| 西乌| 五河县| 绵竹市| 刚察县| 金堂县| 北辰区| 泾源县|