编写完脚本之后,你可以使用sh scriptname, [1] 或者bash scriptname来调用这个脚本. (不推荐使用sh <scriptname, 因为这禁用了脚本从stdin中读数据的功能. ) 更方便的方法是让脚本本身就具有可执行权限, 通过chmod命令可以修改.
chmod 555 scriptname (允许任何人都具有可读和执行权限) [2]
chmod +rx scriptname (允许任何人都具有可读和执行权限)
chmod u+rx scriptname (只给脚本的所有者可读和执行权限)
既然脚本已经具有了可执行权限,现在你可以使用 ./scriptname [3] 来测试这个脚本了. 如果这个脚本以一个"sha-bang"行开头, 那么脚本将会调用合适的命令解释器来运行.
最后一步, 在脚本被测试和debug之后, 你可能想把它移动到/usr/local/bin下, (当然是以root身份), 来让你的脚本对所有用户都有用. 这样以来, 用户就可以在命令行上简单的输入scriptname [ENTER]就可以运行这个脚本了.
[1] | 小心: 使用sh scriptname来调用脚本的时候将会关闭一些Bash特定的扩展, 脚本可能因此而调用失败. |
[2] | 脚本需要读和可执行的权限, 因为shell需要读这个脚本. |
[3] | 为什么不直接使用scriptname来调用脚本? 如果你当前的目录下($PWD) 正好是 scriptname所在的目录, 为什么它运行不了呢? 失败的原因是出于安全考虑, 当前目录并没有被加在用户的 $PATH环境变量中. 因此,在当前目录下调用脚本必须使用./scriptname这种形式. |