bash 中是否有针对这个 C(和其他一些语言)“函数”的解决方案?
condition ? true_value : false_value
只需要一个简单的检查:如果一个变量为0,则返回一个值,否则返回另一个值。
编辑 感谢您的回答,但我想要一个类似的:
./configure ${want_foo=1 ? --enable-foo : --disable-foo}
是否有可能或任何解决方法?
bash 中是否有针对这个 C(和其他一些语言)“函数”的解决方案?
condition ? true_value : false_value
只需要一个简单的检查:如果一个变量为0,则返回一个值,否则返回另一个值。
编辑 感谢您的回答,但我想要一个类似的:
./configure ${want_foo=1 ? --enable-foo : --disable-foo}
是否有可能或任何解决方法?
我常用的成语是:
condition && echo yes || echo no
condition
例如,可以是一个测试表达式:
b=$( (( a == 0 )) && echo A_VALUE || echo AN_OTHER_VALUE )
或者,如您修改后的问题:
./configure $( (( want_foo == 1 )) && echo --enable-foo || echo --disable-foo )
为了清楚起见,您可以?:
直接在算术表达式中使用。如果您想使用字符串,则只需要上述内容。
bash
没有C
风格ternary operator
。但是你可以像这样模拟它
[[ condition ]] && true_value || false_value
根据更新的问题:
./configure $( [[ want_foo == 1 ]] && echo --enable-foo || echo --disable-foo )