有没有更简单/更优雅的方法将返回值分配给变量?到目前为止,我一直在做类似的事情:
some_command_to_run
VAR_TO_SET=$?
但我更希望将所有内容放在一行上,并且最好不使用 $? 变量。有人知道怎么做吗?
答案1
我也知道这些。但是,如果你只是重复执行此操作以查看我的命令是否成功,例如:
if [[ $? -ne 0 ]]; then
...
fi
您实际上可以测试一个命令目录,例如:
if ! mkdir foo; then
...
fi
你可能已经知道了,但你猜对了可能帮你 :-)
答案2
我的问题是“为什么?”。这是 Bash 提供的功能,用于实现该功能。
但是,你可以这样做(除了 Kyle 和 Gilles 所展示的内容之外):
do_something && do_on_success || do_on_failure
答案3
这就是全部了。如果你真的想把它放在一行里,你可以写some_command_to_run; VAR_TO_SET=$?
。你可以把它变成一个两行函数,但我不建议这样做,因为它会使你的脚本更难读(为了理解你的代码,还有一件事需要学习)。