1.2 位于Shell脚本第一行的#!

Posted benefitworld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.2 位于Shell脚本第一行的#!相关的知识,希望对你有一定的参考价值。

学习《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.避免几个初级陷阱

  1. #!这一行的长度有限制,系统不同限制从63到1024个字符不等
  2. 不在选项之后放置任何空白,空白会更这选项传递给引用的程序
  3. 你需要知道解释器的完整路径名称。

  

 

以上是关于1.2 位于Shell脚本第一行的#!的主要内容,如果未能解决你的问题,请参考以下文章

2.4 自给自足的脚本:位于第一行的#!

shell脚本

shell脚本:如何显示某个文件的第一行

Linux操作系统Shell

编写脚本标准的格式与执行脚本

shell基本语法和命令