什么是魔数
shell脚本第一行为 #!/bin/sh
“#!”是一个魔数(Magic,其值为 0x23,0x21),可执行文件在被读取的时候,内核通过这个特定的数字组合开头识别出这是一个需要运行解释器脚本,并且根据约定将其后的字符串在读到换行以前解释为该脚本需要的解释器所在路径。系统会按照路径调用解释器之后再把整个文本的内容传递给解释器。
所以第一行的意思是调用bash。
也可以调用其他程序作为解释器例如:
#!/bin/cat
display myself
hello wolrd
使用了 cat 作为解释器,由于 cat 默认行为是将标准输入的内容输出到标准输出,所以这个脚本的功能就是将自己的文件内容显示在终端上。
执行脚本的方法:
1、 直接将有执行权限的脚本作为命令调用(最通常的调用方法):
$ ./hello.sh
2、显式的使用 shell 程序,将脚本文件作为参数来执行脚本:
$ sh hello.sh
3、将脚本文件重定向到 shell 程序的标准输入:
$ sh < hello.sh
4、 通过一个管道将脚本内容输出到 shell 程序的标准输入:
$ cat hello.sh | sh
5、使用 source 命令执行脚本(后文详述):
$ source hello.sh