您的位置:首页 > 运维架构 > Shell

关于shell变量的测试与内容替换

2015-04-13 20:09 225 查看
参考资料《鸟哥的私房菜——Linux基础学习篇(第三版)》。

在《鸟哥的私房菜——Linux基础学习篇(第三版)》第11章中,鸟哥关于变量的测试与内容替换中,鸟哥最后用范例说明了变量替换中'-'、'='、'?'三种特殊符号的用法。

看完这些例程,给我最大的感受就是var=${str-newvar}或者var=${str=newvar}或者var=${str?newvar}的变量替换就与C语言中唯一的三目运算符?的用法类似:

Max=(x>y)?(x:y)。此处我们分析如下:

var=${str-newvar}:如果str不存在,则var=newvar; //选择后者

如果str存在,则var=${str}; //选择前者

同理“=”也可类似解释:

var=${str=newvar}:如果str不存在,则var=newvar; //选择后者
但由于是等于号,所以str=newvar;

如果str存在,则var=${str}; //选择前者
str保持原有内容

对于“?”的解释为“

var=${str?无此变量}:如果str不存在,则输出错误提示:无此变量; //选择后者

如果str存在,则var=${str}; //选择前者
str保持原有内容
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: