C中的bash条件扩展[重复]
Posted
技术标签:
【中文标题】C中的bash条件扩展[重复]【英文标题】:bash condition expansion as in C [duplicate] 【发布时间】:2013-05-22 22:55:08 【问题描述】:对于这个 C(和其他一些语言)“函数”,bash 有什么解决方案吗?
condition ? true_value : false_value
只需要简单的检查:如果变量为0,则返回一个值,否则返回另一个值。
编辑 感谢您的回答,但我想要一个类似的:
./configure $want_foo=1 ? --enable-foo : --disable-foo
是否有可能或任何解决方法?
【问题讨论】:
@mvp 请检查我的编辑!我想我并不是我想要的。 【参考方案1】:我常用的成语是:
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 )
为了清楚起见,您可以在算术表达式中直接使用?:
。如果您想使用字符串,则只需要上述内容。
【讨论】:
感谢您的回答。请检查编辑! 谢谢,它也可以使用 :)【参考方案2】:bash
没有C
样式ternary operator
。但是你可以像模拟它一样
[[ condition ]] && true_value || false_value
根据更新的问题:
./configure $( [[ want_foo == 1 ]] && echo --enable-foo || echo --disable-foo )
【讨论】:
感谢您的回答。请检查编辑! 它有效,但需要进行一些编辑:$want_foo 应该处于状态,并且 == 而不是 =。谢谢!以上是关于C中的bash条件扩展[重复]的主要内容,如果未能解决你的问题,请参考以下文章