Bash 将命令输出分配给变量,并在返回值上执行if分支
我想做下面的事情Bash 将命令输出分配给变量,并在返回值上执行if分支,bash,Bash,我想做下面的事情 X=$(some_command) if [ $? == 0 ]; then do_something echo $x else do_something_else fi 基本上,我想执行一些命令,将输出存储到某个变量。同时,我想根据命令是否成功进行分支。上述方法可行,但看起来很难看。这是一种更聪明的方式吗 谢谢 if x=$(some command); then do_something echo $x else do_something_else
X=$(some_command)
if [ $? == 0 ]; then
do_something
echo $x
else
do_something_else
fi
基本上,我想执行一些命令,将输出存储到某个变量。同时,我想根据命令是否成功进行分支。上述方法可行,但看起来很难看。这是一种更聪明的方式吗
谢谢
if x=$(some command); then
do_something
echo $x
else
do_something_else
fi
if
命令通过运行该命令并测试它是否成功,然后根据它执行或else
分支来工作
如果
命令通过运行该命令并测试其是否成功来工作,然后根据它执行或否则
分支。这实际上会打开程序的返回值吗?是,if
测试与OP问题中的$?
赋值相同的东西。它有效。我现在不能接受,因为SO有10分钟的时间限制。哇,这看起来真像是一个新的程序员错误(if(x=5)
,而不是if(x=5)
)。有趣,+1是的,我同意它看起来很奇怪。我不确定我是否主张这样做,因为这可能会让人困惑。原始代码非常清楚地说明了发生了什么。这是否真的打开了程序的返回值?是的,如果
测试与OP问题中的$?
赋值相同的东西,它会起作用。我现在不能接受,因为SO有10分钟的时间限制。哇,这看起来真像是一个新的程序员错误(if(x=5)
,而不是if(x=5)
)。有趣,+1是的,我同意它看起来很奇怪。我不确定我是否主张这样做,因为这可能会让人困惑。原始代码非常清楚地说明了发生了什么。