Bash中能否在单行内同时完成赋值与条件判断?
Bash中能否在单行内同时完成赋值与条件判断?
当然可以啦!Bash完全支持在单行里同时完成变量赋值和条件判断,只是语法和Python的海象运算符不太一样,咱们来具体看看怎么实现。
比如对应你给出的Python代码逻辑,在Bash里可以这么写:
if result=$(some_function) && (( result > 0 )); then # 在这里处理result变量,比如打印或者做其他操作 echo "处理正数结果:$result" fi
这里的逻辑是:
- 先执行
result=$(some_function),把some_function的输出结果赋值给变量result - 如果赋值成功(也就是函数执行没有出错,退出状态码为0),接着执行
(( result > 0 ))来判断result是否大于0 - 只有这两个条件都满足时,才会进入
then块执行后续操作
要是你想要更紧凑的单行写法(适合简单逻辑),也可以省略if语句,直接用逻辑连接符串起来:
result=$(some_function) && (( result > 0 )) && echo "结果为正:$result"
需要注意的是,如果some_function的返回值是退出状态码而非标准输出,那写法会有所不同,但针对你例子里“赋值函数返回值后判断大小”的场景,上面的写法就完全适用啦。
备注:内容来源于stack exchange,提问作者nt.dinh
相关产品推荐
相关产品推荐

