shell脚本一般是以shebang(sharp-bang)起始的,在Unix的行话里,用sharp或bang(mesh)来称呼字符“#”,用bang来称呼感叹号“!”,因而合起来就是shebang。
shebang是Sharp和Bang的组合词。Sharp for #, Bang for ! 类似的情况是,C#通常被称为C Sharp。
不是注释。shebang(#!)所在行的作用是告知该脚本使用的是哪种命令解释器,并不是可有可无的。虽然很多情况下省略了shebang(#!)仍然能够运行脚本,这是由于系统在这种情况下是默认使用了当前命令行解释器的
shebang(#!)应该位于脚本的第一行,并且顶格填写,否则都是错的,即使shebang之前的内容都是注释,这种错误是常见的,而且不易发现的,因为此时shebang(#!)所在行实际上是不起效的,系统使用了默认的命令行解释器。
只有第一行的shebang(#!)会生效,其余的会视为注释。
#!/bin/bash
shebang是一个文本行,其中#!位于解释路径之前,/bin/bash是Bash的解释器路径。
shell脚本的执行方式有两种:
1、将脚本名作为命令行参数,即使用Bash命令执行脚本:
如:
bash test.sh
2、将脚本文件赋予执行权限,然后执行程序:
chmod +x test.sh
or
chmod 755 test.sh
./test.sh
Get小技巧:
这里说一下一个小技巧,我们在使用bash执行脚本文件时,可以使用-x参数启用shell脚本的调试跟踪功能,这个参数可以打印输出脚本所执行的每一行命令以及当前的状态:
注:当然还有别的用法,有兴趣可以自行了解~~
如:
vim test.sh
for i in `seq 1 5`
do
echo $i
done
然后运行以下命令:
bash -x test.sh

当然了。如果我们把“#!/bin/bash”改为“#!/bin/bash -xv”也可以开启bash 的调试功能。