ubuntu 下 shell指令碼的執行

2021-09-25 12:26:38 字數 556 閱讀 3363

之前寫過一些簡單的bash指令碼,實現一些簡單的功能,雖然每次寫完之後無法使用

./test.sh 來執行,但是使用 sh test.sh 效果也一樣的。

今天在使用 sh 來執行指令碼時,出現了錯誤,就引發了我的好奇心,在網上搜了許多部落格,看看到底有什麼不同,以下是我的個人思考與理解

首先,在ubuntu 下建立指令碼檔案時,會預設不能執行,!可以看到無論是使用者本身,同組使用者,還有其他使用者都沒有執行許可權。

然後我們需要使用簡單的指令允許自己執行該批處理檔案(該檔案可以看作是若干條指令的集合,相當於windows下面的.bat檔案)

chmod +x test.sh

這樣就可以使用 ./test.sh來執行該批處理檔案了。

我出現的問題是,在使用 sh test.sh

執行檔案時有一條語句報錯

換成 ./test.sh 來執行就沒問題了,我有點迷,在網上搜了好多才發現應該使用bash來執行這個批處理檔案,這是由於以下語句要求使用bash來解析。

bash是功能比較齊全的,但是而sh的功能有限,所以會導致出現這樣的錯誤。

希望大家多多指教

Ubuntu下執行Shell指令碼

將乙個指令碼儲存為帶有副檔名的檔案,如test.sh,在終端上輸入 chmod x test.sh 然後輸入 test.sh 終端顯示 test.sh 找不到命令 後來看了鳥個私房菜,發現這樣輸入,系統只會在 path上列出的路徑查詢,而不會查詢當前的目錄有沒有這樣的命名,以找到的第乙個為準 但是,...

ubuntu下shell指令碼執行異常

ubuntu下shell指令碼執行異常 sudo start.sh start.sh 16 start.sh syntax error bad for loop variable 原因 ubuntu下sh預設指向dash,是 bin sh鏈結到了 bin dash而不是傳統的 bin bash。ba...

Ubuntu系統Shell指令碼

常用 檢視所有環境變數 列印環境變數 envecho path export ld library path pwd 定義和取消變數 var1 123 unset var1 列印系統資訊 grep v u 反向不匹配 uname a 賬號和密碼 切換賬號 設定賬號密碼 su root su sudo...