如何在 bash 中不使用 $ 分配变量?

如何在 bash 中不使用 $ 分配变量?

有没有更简单/更优雅的方法将返回值分配给变量?到目前为止,我一直在做类似的事情:

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=$?。你可以把它变成一个两行函数,但我不建议这样做,因为它会使你的脚本更难读(为了理解你的代码,还有一件事需要学习)。

相关内容