我正在清理脚本的输出。例如:Shell脚本错误处理
rm -f ./file
没有这样的文件或目录
我要实现一些错误检查该命令,相当于一个try/catch
声明。换句话说,如果命令失败,我想捕捉错误。
我正在清理脚本的输出。例如:Shell脚本错误处理
rm -f ./file
没有这样的文件或目录
我要实现一些错误检查该命令,相当于一个try/catch
声明。换句话说,如果命令失败,我想捕捉错误。
为什么不使用一个简单的脚本achive相同的行为?
file=$1
if [ ! -f $file ]; then
echo "File not found!"
else
rm -f $file
fi
当您运行它时,脚本会告诉您给定的文件是否不存在。
您也可以在echo命令后面使用2>&1
重定向到stderr
和stdout
。您还可以在if语句的末尾添加exit 1
,因为退出状态1通常表示该命令未成功执行。
这不会像你打算的那样工作,但在bash中这是检测错误的最接近的方法。
使用set -e
或者您可以使用&&
或||
的Python:
try:
os.remove('./file')
champagne_for_everybody
except:
throw_myself_in_the_river
壳牌:
if rm ./file
then
champagne_for_everybody
else
throw_myself_in_the_river
fi
注:
-f
- POSIX rm
忽略使用-f
时丢失的文件。
'RM -f blahblahblah'没有我的系统上打印错误消息。对你有帮助吗?什么系统? –
只是一个提示:搜索'set -e','trap' ... – anishsane