linux – Shell脚本以只包含冒号的行结尾?
发布时间:2020-12-14 01:01:31 所属栏目:Linux 来源:网络整理
导读:我正在研究/etc/init.d/中当前Debian 7.4.0 wheezy发行版中的System V init脚本(但它也出现在其他的,之前的版本中).几乎所有这些(来自现有服务)在该文件夹中找到,基本上是一个空行,只包含冒号(:)符号.即使是为了编写自己的init脚本而在那里找到的’骨架’模
我正在研究/etc/init.d/中当前Debian 7.4.0 wheezy发行版中的System V init脚本(但它也出现在其他的,之前的版本中).几乎所有这些(来自现有服务)在该文件夹中找到,基本上是一个空行,只包含冒号(:)符号.即使是为了编写自己的init脚本而在那里找到的’骨架’模板文件也是如此.这是代码末尾的复制/粘贴:
esac : (那是案例陈述的结尾,然后是文件的结尾) 有趣的是,没有退出0或退出$?调用,除了只在case语句中的某些条件,否则将被调用,所以看起来好像冒号是一种替代它? 结肠怎么可能?为什么? 解决方法
冒号是一个语法元素,基本上什么都不做,但返回true.它可以在任何命令可以使用的情况下使用.
在sh(1)需要声明的情况下有时需要它.例如,这给出了一个错误: if [ "$a" = "" ] ; then # comment out this part for now # echo yes else echo no fi bash:意外标记’else’附近的语法错误 用以下代码替换注释:使其有效: if [ "$a" = "" ] ; then # comment out this part for now : echo yes else echo no fi 很少需要在shell中明确使用“exit 0”;在没有exit语句的情况下,shell脚本以最后一个命令的状态退出,该命令是刚刚执行的shell脚本 /bin/false 将给出退出状态1: $echo $? 1 结肠很大程度上是黑魔法,我从实验中学到了很少的知识. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |