如何在bash中分配variables而不使用$?

有没有更容易/更优雅的方式来分配一个返回值的variables? 到目前为止,我一直在做这样的事情:

some_command_to_run VAR_TO_SET=$? 

但我更愿意把它全部放在一行上,最好不要用$? variables。 有谁知道如何?

这就是我所知道的。 但是,如果你只是重复这样做,看看我的命令是否成功,例如:

 if [[ $? -ne 0 ]]; then ... fi 

你实际上可以testing一个命令目录,如:

 if ! mkdir foo; then ... fi 

你可能已经知道,但认为它可以帮助你:-)

我的问题是“为什么?”。 这是Bash提供的工具来完成这个function。

但是,你可以做到这一点(除了Kyle和Gilles所展示的):

 do_something && do_on_success || do_on_failure 

这就是全部。 如果你真的想在一行上,你可以写some_command_to_run; VAR_TO_SET=$? some_command_to_run; VAR_TO_SET=$? 。 你可以把它作为一个双线function,但我不推荐它,因为它会使你的脚本更不可读(还有一件事要学会理解你的代码)。