91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux系統怎么執行Shell腳本

發布時間:2022-02-03 19:05:43 來源:億速云 閱讀:294 作者:小新 欄目:開發技術

小編給大家分享一下Linux系統怎么執行Shell腳本,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

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

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

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

指在當前路徑下執行腳本(腳本需要有執行權限),需要將腳本文件的權限改為可執行(即文件權限屬性為x位)。具體方法為:chmod a+x script-name。然后通過執行腳本絕對路徑或者相對路徑就可以執行腳本了。注意:在生產環境中,運維人員由于忘記為該腳本設置可執行權限,然后直接使用,導致出錯。因此,推薦第一種 bash script-name。

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

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

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

舉個栗子:

新建一個文件test_sh.sh,不給它賦予任何可執行的權限x。

Linux系統怎么執行Shell腳本

編輯內容如下:

Linux系統怎么執行Shell腳本

文件以及文件中內容與常見的shell不同之處在于,這里的文件沒有賦予可執行權限以及在文件內容中的首行中沒有添加#!/bin/bash。我們現在用上述介紹的幾種方式來測試下效果。

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

Linux系統怎么執行Shell腳本

報權限拒絕,Permission denied,此時,我們只要更改文件的屬性為可執行即可。

執行第一種bash script-name,效果如下:

Linux系統怎么執行Shell腳本

可以成功執行,輸出:hello。但是,我們輸入命令:echo $name,發現如下:

Linux系統怎么執行Shell腳本

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

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

Linux系統怎么執行Shell腳本

可以成功的輸出變量的值。這是因為source script-name和. script-name是將script-name中的內容直接加載到當前的shell,因此能夠輸出當前變量的值。

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

Linux系統怎么執行Shell腳本

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

補充知識點:

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

#!/bin/bash

#!/bin/sh

注意:

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

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

以上是“Linux系統怎么執行Shell腳本”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昌平区| 黄山市| 睢宁县| 彩票| 新巴尔虎左旗| 庄河市| 大宁县| 红原县| 郴州市| 马边| 江阴市| 岗巴县| 庆云县| 丰台区| 汤原县| 禹州市| 榕江县| 琼结县| 伊宁市| 荃湾区| 萨迦县| 楚雄市| 筠连县| 周口市| 江阴市| 翼城县| 小金县| 永修县| 桦川县| 宁南县| 永安市| 宝坻区| 沂源县| 沙田区| 南平市| 健康| 乐业县| 江都市| 阿勒泰市| 昌邑市| 松溪县|