在docker入口点bash脚本的行开头冒号
参见英文答案 > What is the purpose of the : (colon) GNU Bash builtin?????????????????????????????????????11个
我看到了这个帖子What is the purpose of the : (colon) GNU Bash builtin? 并且能够弄清楚:意味着是真的并且:=用于分配默认值,但它并没有真正涉及到什么:在行的开头至少对于这个特定情况. 最佳答案
在Bourne shell和像Bash这样的衍生产品中,:是一个无操作命令:也就是说,它不会做任何事情,但会正常评估参数.将其与注释(#)进行对比,注释(#)根本不执行任何操作(只需忽略#之后的注释).
这个语法:
通常用于为变量分配默认值.语法${POSTGRES_USER:= postgres}(a)将仅将变量POSTGRES_USER设置为postgres,如果它还没有值,则将(b)计算为$POSTGRES_USER的值.如果我们使用评论:
……什么都不会发生,因为shell只是忽略了整条线.使用:表示仍然评估${…}表达式,因此必要时为POSTGRES_USER分配一个值. 更新 如果没有:在行的开头,那么:
将是一个shell命令! shell会首先评估变量扩展并提出像postgres这样的东西,所以你会有一个有效的shell脚本:
这可能会给你错误:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 关于AXIS WebService通过HTTPS协议访问WAS Web服务错误问题
- axis webservice 配置1
- angularjs – 在浏览器中使用testacular(现在的karma)
- Scala中类型参数的默认值
- angularjs – Angular $resource无法正确解析整数响应
- 用于scala脚本的有用资源
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Gly
- 【软件周刊】要的就是速度,Angular 4.0.0 beta0 发布;Jet
- scala – “未来[选项[未来[选项[X]]]]`进入`未来[选项[X]]
- scala – 为什么要通过@uV禁用方差检查?