深入理解Shell脚本与文件权限
1. 什么是Shell脚本
当好莱坞演员拿到剧本时,他们会按照剧本中的对话顺序进行表演。同样,Shell脚本是预先定义好的一系列要呈现给Shell的指令序列,它实际上就是一个包含待执行命令的文件。
2. #!/bin/ksh 解析
Shell脚本本质上是一组保存在文件中的命令。执行脚本时,文件中的命令会被传递给解释器进行处理。脚本编写者可以从多种Shell中进行选择。若要表明脚本是Korn Shell脚本,并由ksh解释(而非csh、sh、bash、tcsh或其他Shell程序),可以在脚本文件的第一行使用特殊字符。
通常,井号(#)开头的行是注释,注释行不会被Shell解释,主要用于脚本维护时提供文档说明。然而,如果在文件的第一行,井号后面紧接着感叹号(!),当前运行的Shell会将 #! 后面的文件规范解释为用于解释脚本其余部分的程序。
例如,一个简单的Shell脚本如下:
#!/bin/ksh
echo “Hello World!”
该脚本的输出为:
Hello World!
需要注意的是,系统的Korn Shell程序可能不在 /bin 目录下,此时只需修改脚本的第一行以匹配ksh程序的位置和名称。
若文件中只有第二行(即没有 #!/bin/ksh),当前执行的Shell若能理解脚本文件中的命令,就会运行它们;若不能,则会产生错误信息并退出脚本。不过,像显示文本这样简单的示例,在大多数She