shell腳本一般是以shebang(sharp-bang)起始的,在Unix的行話里,用sharp或bang(mesh)來稱呼字符“#”,用bang來稱呼感嘆號(hào)“!”,因而合起來就是shebang。
shebang是Sharp和Bang的組合詞。Sharp for #, Bang for ! 類似的情況是,C#通常被稱為C Sharp。
不是注釋。shebang(#!)所在行的作用是告知該腳本使用的是哪種命令解釋器,并不是可有可無的。雖然很多情況下省略了shebang(#!)仍然能夠運(yùn)行腳本,這是由于系統(tǒng)在這種情況下是默認(rèn)使用了當(dāng)前命令行解釋器的
shebang(#!)應(yīng)該位于腳本的第一行,并且頂格填寫,否則都是錯(cuò)的,即使shebang之前的內(nèi)容都是注釋,這種錯(cuò)誤是常見的,而且不易發(fā)現(xiàn)的,因?yàn)榇藭r(shí)shebang(#!)所在行實(shí)際上是不起效的,系統(tǒng)使用了默認(rèn)的命令行解釋器。
只有第一行的shebang(#!)會(huì)生效,其余的會(huì)視為注釋。
#!/bin/bash
shebang是一個(gè)文本行,其中#!位于解釋路徑之前,/bin/bash是Bash的解釋器路徑。
shell腳本的執(zhí)行方式有兩種:
1、將腳本名作為命令行參數(shù),即使用Bash命令執(zhí)行腳本:
如:
bash test.sh
2、將腳本文件賦予執(zhí)行權(quán)限,然后執(zhí)行程序:
chmod +x test.sh
or
chmod 755 test.sh
./test.sh
Get小技巧:
這里說一下一個(gè)小技巧,我們?cè)谑褂胋ash執(zhí)行腳本文件時(shí),可以使用-x參數(shù)啟用shell腳本的調(diào)試跟蹤功能,這個(gè)參數(shù)可以打印輸出腳本所執(zhí)行的每一行命令以及當(dāng)前的狀態(tài):
注:當(dāng)然還有別的用法,有興趣可以自行了解~~
如:
vim test.sh
for i in `seq 1 5`
do
echo $i
done
然后運(yùn)行以下命令:
bash -x test.sh

當(dāng)然了。如果我們把“#!/bin/bash”改為“#!/bin/bash -xv”也可以開啟bash 的調(diào)試功能。