This question already has answers here:
Ternary operator (?:) in Bash
(15个答案)
5年前关闭。
在C中,我可以这样分配值:
val = (cond)? val_true : val_false;

相当于
if (cond)
    val = val_true;
else
    val = val_false;

shell bash中是否有等效的val=(cond)? val_true : val_false

最佳答案

假设您希望它有点像这样:

true=1
[ $true ] && p=1 || p=0

你所要做的就是把你想要的条件放在这些括号里。
如果它是有效的,那么在AND之后的分支被跟随,否则在OR之后的分支被跟随。
这相当于:
if [ $true ]; then p=1; else p=0; fi

因此,您应该了解这个结构,以防遇到它,但它的可读性可能比直接列出您正在做的事情要差。

关于c - 等价于“(cond)? shell bash中的val_true:val_false ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20883925/

10-11 18:41