shell中第一行 bin bash的作用

2021-09-25 13:33:20 字數 884 閱讀 7712

shell中

#!/bin/bash

#!/bin/ksh

這些東西是幹什麼的,有用嗎?

#!是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種 shell。

這些不是注釋符,而是說明下面的指令碼是在什麼shell下面執行的,

並且以該shell環境來執行指令碼,乙個簡單的例子

#!/bin/ksh

export log=/tmp/test.log

exec >> $log 2>&1

echo "a test message!"

exit 0

在aix下面編輯好該指令碼後直接執行,執行成功在/tmp下面會有乙個test.log檔案生成,

檔案內容為"a test message!"

如果我們把上面的

#!/bin/ksh

換成#!/bin/csh

執行指令碼,則會有如下報錯:

export不是shell命令

即,在csh裡面沒有export這個命令,所以會報錯

一同事犯的乙個簡單的錯誤,在乙個shell指令碼裡面其開頭是這樣的:

#!bin/ksh

....

在test環境裡面,他是這樣執行的:

ksh test.sh

結果正確,沒有問題

好,然後就布置到生產環境的crontab裡面,結果shell沒跑成功。

ps: 如果指令碼裡面沒有寫#!...這一段,指令碼是可以執行的,那麼系統

又是使用什麼shell來執行的呢?我想應該是使用者的$shell這一

環境變數來指定的那乙個shell吧。

shell指令碼第一行 bin bash的含義

相信有接觸過shell指令碼的同學們都應該知道,shell指令碼的第一行一般會寫有以下字樣 bin bash或者 bin sh或者 bin awk比較常見的說法是 第一行的內容指定了shell指令碼直譯器的路徑,而且這個指定路徑只能放在檔案的第一行 但我們也知道,在shell指令碼裡符號 是作為注釋...

shell指令碼第一行 bin bash的含義

相信有接觸過shell指令碼的同學們都應該知道,shell指令碼的第一行一般會寫有以下字樣 bin bash或者 bin sh或者 bin awk比較常見的說法是 第一行的內容指定了shell指令碼直譯器的路徑,而且這個指定路徑只能放在檔案的第一行 但我們也知道,在shell指令碼裡符號 是作為注釋...

vi中跳到檔案的第一行和最後一行

a 輸入 0 或者 1 回車 b 鍵盤按下 小寫 gg a 輸入 回車 b 鍵盤按下大寫 g c 鍵盤按 shift g 其實和第二種方法一樣 vim快速移動游標至行首和行尾 1 需要按行快速移動游標時,可以使用鍵盤上的編輯鍵home,快速將游標移動至當前行的行首。除此之外,也可以在命令模式中使用快...