亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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)配置(服務(wù)控制)詳細介紹

    Linux系統(tǒng)配置(服務(wù)控制)詳細介紹

    大家好,本篇文章主要講的是Linux系統(tǒng)配置(服務(wù)控制)詳細介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Apache開啟并實現(xiàn)網(wǎng)站偽靜態(tài)化的方法

    Apache開啟并實現(xiàn)網(wǎng)站偽靜態(tài)化的方法

    Apache的Mod_Rewrite對URL進行重寫,實現(xiàn)網(wǎng)站偽靜態(tài)化,這里就為大家介紹一下
    2022-08-08
  • 使用VMware虛擬機安裝Linux(CentOS7鏡像)

    使用VMware虛擬機安裝Linux(CentOS7鏡像)

    這篇文章介紹了使用VMware虛擬機安裝Linux(CentOS7鏡像)的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • VirtualBox 未指定要bridged的網(wǎng)絡(luò)界面的解決辦法

    VirtualBox 未指定要bridged的網(wǎng)絡(luò)界面的解決辦法

    這篇文章主要介紹了VirtualBox 未指定要bridged的網(wǎng)絡(luò)界面的解決辦法的相關(guān)資料,希望通過本文能幫助到大家,讓大家解決遇到這樣的問題,需要的朋友可以參考下
    2017-10-10
  • iptables做策略屏蔽QQ與MSN

    iptables做策略屏蔽QQ與MSN

    QQ服務(wù)器端口為:8000;客戶端端口為:4000(開啟第二個QQ時為4001,依次類推);均為UDP.MSN端口數(shù)較多:1863為登陸所需要的端口以及3000-4000等等
    2013-04-04
  • vim編輯器常用命令總結(jié)

    vim編輯器常用命令總結(jié)

    這篇文章介紹了vim編輯器的常用命令,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • apache在win2003下的安全設(shè)置(配合文件夾權(quán)限目錄,很好很安全)

    apache在win2003下的安全設(shè)置(配合文件夾權(quán)限目錄,很好很安全)

    眾所周知,在windows下當(dāng)Apache第 一次被安裝為服務(wù)后,它會以用戶“System”(本地系統(tǒng)賬號)運行。如果web服務(wù)器的所有資源都在本地系統(tǒng)上,這樣做會問題比較少,但是將會具有很 大的安全 權(quán)限來影響本地機器,因此千萬不能開啟System帳號的網(wǎng)絡(luò)權(quán)限
    2012-01-01
  • 關(guān)于CentOS 7下sqlite3找不到的問題解決

    關(guān)于CentOS 7下sqlite3找不到的問題解決

    這篇文章主要給大家介紹了關(guān)于CentOS 7下sqlite3找不到問題的解決方法,文中介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • Ubuntu無網(wǎng)絡(luò)標(biāo)識的問題及解決

    Ubuntu無網(wǎng)絡(luò)標(biāo)識的問題及解決

    這篇文章主要介紹了Ubuntu無網(wǎng)絡(luò)標(biāo)識的問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Linux解壓JAR包 查看class內(nèi)容方式

    Linux解壓JAR包 查看class內(nèi)容方式

    這篇文章主要介紹了Linux解壓JAR包 查看class內(nèi)容方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評論