所以我发现bash不处理异常(没有try/catch).对于我的脚本,我想知道命令是否成功.
这是我现在代码的一部分:
command = "scp -p$port $user:$password@$host:$from $to"
$command 2>/dev/null
if (( $? == 0 )); then
echo 'command was successful'
else
echo 'damn, there was an error'
fi
Run Code Online (Sandbox Code Playgroud)
我不明白的是:
2背后的$command?$呢?leg*_*ing 26
$? 表示上次执行的命令的返回码.
2>表示将stderr(标准错误流)输出重定向到/dev/null.
Wil*_*iam 11
仅供参考,这也有效:
if some_command 2>/dev/null ; then
echo 'command was successful'
else
echo 'damn, there was an error'
fi
Run Code Online (Sandbox Code Playgroud)