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,快速將游標移動至當前行的行首。除此之外,也可以在命令模式中使用快...