所以我发现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
我不明白的是:
2
放在$command
后面?$
究竟是什么?答案 0 :(得分:26)
$?
表示上次执行的命令的返回码。
2>
表示将stderr
(标准错误流)输出重定向到/dev/null
。
答案 1 :(得分:11)
仅供参考,这也有效:
if some_command 2>/dev/null ; then
echo 'command was successful'
else
echo 'damn, there was an error'
fi