【发布时间】:2013-02-19 18:15:40
【问题描述】:
所以我发现 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
我不明白的事情是:
- 第3行,为什么我必须把
2放在$command后面? - 第 5 行,这个
$到底是什么?
【问题讨论】:
-
如果你打算做 bash 脚本,谷歌“sh 教程”或“bash 教程”,或者更核心的 approacb
man bash。这些是非常基本的细节,还有更多这样的小细节,你可以写出这样的问题...... -
if (( ... )); then ...的目的是什么?cmd; if [ $? == 0 ] ...有根本不同吗?