在Bash中我正在执行一个命令并将结果放在一个变量中:
export var=`svn ls`
但是如果SVN由于某种原因失败 - 比如它返回一个非零错误代码 - 导出仍然返回状态代码0.如何检测执行的命令是否失败?
var=`svn ls`
if [[ $? == 0 ]]
then
export var
else
unset var
fi
Run Code Online (Sandbox Code Playgroud)
$?是执行的最后一个命令的退出代码,就svn ls在这里.
jmohr的解决方案简短而且甜美.温和地适应,
var=`svn ls` && export var || unset var
Run Code Online (Sandbox Code Playgroud)
将大致相当于上述(export有效的标识符永远不会失败,除非你做了一些可怕的事情并且耗尽了环境空间).拿你想要的任何东西 - 我unset只是为了避免$var可能有一个值,即使它没有被导出.
| 归档时间: |
|
| 查看次数: |
1199 次 |
| 最近记录: |