别在选项(option)之后放置任何空白,因为空白也会跟着选项一起传递给被引用的程序。你需要知道解释器的完整路径名称。这可以用来规避可移植性问题,因为不同的厂商可能将同样的东西放在不同的地方(例如/bin/awk和/usr/bin/awk)。
POSIX标准对#!的行为模式保留未定义(unspecified)状态。此状态是“只要一直保持POSIX兼容性,这是一个扩展功能”的标准说法。下面是修订过的nusers程序:
$ cat nusers 显示文件内容
#! /bin/sh -f 神奇的#!行
who | wc -l 所要执行的命令
选项 - 表示没有Shell选项 ;这是基于安全上的考虑,可避免某种程度的欺骗式攻击(spoofing attack)。
POSIX标准对#!的行为模式保留未定义(unspecified)状态。此状态是“只要一直保持POSIX兼容性,这是一个扩展功能”的标准说法。下面是修订过的nusers程序:
$ cat nusers 显示文件内容
#! /bin/sh -f 神奇的#!行
who | wc -l 所要执行的命令
选项 - 表示没有Shell选项 ;这是基于安全上的考虑,可避免某种程度的欺骗式攻击(spoofing attack)。