shell – 注释#!/ bin/sh行之前和/或之后的注释(#)行的效果
发布时间:2020-12-15 22:57:38 所属栏目:安全 来源:网络整理
导读:例一 #!/bin/sh# purpose: print out current directory name and contentspwdls 例二 # purpose: print out current directory name and contents#!/bin/shpwdls 有什么区别 – 如果我把第一行作为注释(#),用#!/ bin / sh作为第二行,会发生什么? #!/ bin
例一
#!/bin/sh # purpose: print out current directory name and contents pwd ls 例二 # purpose: print out current directory name and contents #!/bin/sh pwd ls 有什么区别 – 如果我把第一行作为注释(#),用#!/ bin / sh作为第二行,会发生什么? #!/ bin / sh的含义是什么? 解决方法
通常,shell脚本由/ etc / passwd文件中定义的默认shell运行.但是您可以明确定义一个可以运行脚本的程序.
Unices使用通用方法来确定运行特定脚本所需的程序(man execve(2)).如果脚本具有正确的执行权限集并且在脚本中,则第一行以#开头!字符,它将由之后定义的程序运行. 例如,如果第一行是#!/usr/bin/awk -f,那么文件的其余部分将被传递给awk程序(因此它必须使用awk语法).或者如果Makefile以#!/usr/bin/make -f开头,那么文件的其余部分将被传递给make.您可以将脚本作为普通程序启动,脚本可以用awk或make(或任何已定义的)语法编写. 如果execve找不到#!作为文件的前两个字符,它将被视为一个普通的脚本文件,它将按原样运行. 所以使用#!您可以确定脚本语言,并且您不需要知道其他用户使用您的脚本使用了哪些shell.在任何其他行#!将被解释为您的默认shell,通常只是注释行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |