linux – shell:当var未设置或为null时,${var: – }的目的是什么?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – shell:当var未设置或为null时,${var: – }的目的是什么?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含967字,纯文字阅读大概需要2分钟。
内容图文
![linux – shell:当var未设置或为null时,${var: – }的目的是什么?](/upload/InfoBanner/zyjiaocheng/966/caaa7d3ca8c84d298baad68d7e59db91.jpg)
在我的Linux Mint 17.2 /etc/bash.bashrc中,我看到以下内容:
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
这是对令牌debian_chroot的第一次引用.
为什么这段代码使用${debian_chroot: – }而不只是$debian_chroot?
Bash的Shell Parameter Expansion说:
${parameter:-word}
If parameter is unset or null, the expansion of word is substituted. Otherwise, the value of parameter is substituted.
这里,“word”为null,为什么还要将null替换为null?
解决方法:
语法${debian_chroot: – }阻止shell在使用set -u运行时退出(使用未定义变量时崩溃)并且此时未设置debian_chroot.
您不希望普通的交互式shell设置-u(它会很容易崩溃),但它在脚本中非常有用.
看到这个:
bash -c 'set -u; [ -z $a ]; echo ok' # error
bash -c 'set -u; a=; [ -z $a ]; echo ok' # ok
bash -c 'set -u; [ -z ${a:-} ]; echo ok' # ok
bash -c 'set -u; a=; [ -z ${a:-} ]; echo ok' # ok
内容总结
以上是互联网集市为您收集整理的linux – shell:当var未设置或为null时,${var: – }的目的是什么?全部内容,希望文章能够帮你解决linux – shell:当var未设置或为null时,${var: – }的目的是什么?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。