首页 > 编程知识 正文

shell脚本中的do和done,shell脚本中的for循环

时间:2023-05-04 14:10:22 阅读:182079 作者:992

典型的Unix系统包括#! 是这个符号,这个符号叫什么? 是什么原理呢?

#! 符号可以称为shebang。 很久以前,shebang没有正式的中文名字。 后来,Linux中国翻译集团的GOLinux将其翻译成shebang的音译和“解释伴行”的简称

shebang通常出现在Unix系统脚本的第一行中。 作为前两个字符,shebang后面有一个或多个空格,后跟解释器的绝对路径,指示要运行此脚本的解释器。 直接调用脚本时,系统的程序加载器会分析shebang后面的内容,并将这些内容作为解释器指令调用。 将搭载了shebang的文件路径作为该解释器的参数执行脚本,使脚本文件的调用方法与通常的可执行文件相似。例如,命令#! 以/wnddy/bash开头的文件实际上在运行时通过调用/wnddy/bash程序执行

#符号在许多脚本语言中是注释标识符,因此这些脚本解释器会自动忽略shebang的内容。 在字符不是注释标识符的语言中,例如scheme,解释器也是#! 的第一行内容,这样可以保证shebang的良好兼容性

以下列举shebang的具体使用方法

在脚本文件中#! 当执行shell脚本时,该行缺省使用当前shell来解释脚本。 也就是: $ shell环境变量。 #! 由于后续的解释器是可执行文件,因此运行该脚本时,将文件名和参数一起作为参数传递给该解释器并执行。 #! 如果的解释器没有可执行的权限,则会报告错误,并且权限被拒绝#! 如果指定的解释器不是可执行文件,则会忽略指定的解释器,并将它传递给当前shell以执行此脚本。 #! 如果指定的解释器不存在,则会报告找不到该目录或文件。 #! 之后的解释器路径必须使用绝对路径。 它不会自动在$PATH环境变量中查找解释器。 在命令行中运行脚本时,使用某个解释器执行脚本。 例如,如果是bash test.sh这样的命令,则为脚本中的#! 在脚本执行之前自动忽略的脚本文件必须具有可执行的权限。 shebang的优点是,通过将脚本和数据文件用作系统命令,用户可以在调用时不需要指定解释器,并且可以向用户或其他程序隐藏执行详细信息。 例如,

#! /wnddy/sh使用sh,即bourne shell或其他兼容shell编写脚本#! /wnddy/csh使用csh,即c shell #! /usr/wnddy/perl -w用带警告的perl! /usr/wnddy/python -0使用代码优化的python! 如果使用php命令行解释器运行shebang行,/usr/wnddy/php还可以包含必须传递给解释器的特定选项,如上面的perl和python示例

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。