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

當然了。如果我們把“#!/bin/bash”改為“#!/bin/bash -xv”也可以開啟bash 的調試功能。