学习《shell脚本学习指南》一书,记录总结,便于自己回忆,希望对你有帮助! 2.4 自给自足的脚本:位于第一行的 #!
1.Shell脚本执行过程
当Shell执行一个程序时,会要求UNIX内核启动一个新的进程,以便在该进程里执行所指定的程序。
内核知道如何为编译型程序做这件事。但Shell脚本并非编译型程序;当Shell要求内核执行它时,内核将无法做这件事。
内核会告诉Shell这个我解决不了,接着Shell就会启动一个新的 /bin/sh(标准Shell)副本来执行该程序。
2.为什么Shell脚本要加 #!
现行的UNIX系统都会拥有好几个Shell,通过哪一种Shell去运行脚本,我们需要告知UNIX内核。这样做有助于执行机制通用化,
让用户得以直接引用任何的程序语言解释器,而并非一个命令Shell。
3.如何设置 #!
方法就是,通过在脚本文件中第一行设置:#! 符号
[root@localhost test]# vim nusers #! /bin/sh - 当没有Shell选项时,建议写为 "-"
who | wc -l
4.避免几个初级陷阱
- #!这一行的长度有限制,系统不同限制从63到1024个字符不等
- 不在选项之后放置任何空白,空白会更这选项传递给引用的程序
- 你需要知道解释器的完整路径名称。