相当于shell bash中的“(cond)?val_true:val_false”[重复]
Posted
技术标签:
【中文标题】相当于shell bash中的“(cond)?val_true:val_false”[重复]【英文标题】:equivalent of "(cond)? val_true : val_false" in shell bash [duplicate] 【发布时间】:2014-01-19 23:00:25 【问题描述】:在 C 中我可以这样赋值:
val = (cond)? val_true : val_false;
相当于
if (cond)
val = val_true;
else
val = val_false;
在 shell bash 中是否有 val=(cond)? val_true : val_false
的等价物?
【问题讨论】:
它与被比较的那一款略有不同吗?对于新手来说有点混乱(尽管对于拥有 10.4K 代表的人来说不是) 【参考方案1】:假设你希望它有点像这样:
true=1
[ $true ] && p=1 || p=0
您所要做的就是在这些括号内保留您想要的任何条件。
如果有效,则跟随AND之后的分支,否则跟随OR之后的分支。
这等价于:
if [ $true ]; then p=1; else p=0; fi
所以你应该注意这个结构,以防万一遇到它,但可以说它比仅仅明确列出你在做什么更不可读。
【讨论】:
以上是关于相当于shell bash中的“(cond)?val_true:val_false”[重复]的主要内容,如果未能解决你的问题,请参考以下文章