【发布时间】:2009-02-21 03:53:29
【问题描述】:
在bash 脚本中,我必须检查是否存在多个文件。
我知道一种尴尬的方法,如下所示,但这意味着我的主程序必须在那个丑陋的嵌套结构中:
if [ -f $FILE1 ]
then
if [ -f $FILE2 ]
then
echo OK
# MAIN PROGRAM HERE
fi
fi
以下版本无效:
([ -f $FILE1 ] && [ -f $FILE2 ]) || ( echo "NOT FOUND"; exit 1 )
echo OK
打印出来
NOT FOUND
OK
有没有一种优雅的方法可以做到这一点?
更新:查看接受的答案。另外,优雅方面我喜欢Jonathan Leffler's answer:
arg0=$(basename $0 .sh)
error()
{
echo "$arg0: $@" 1>&2
exit 1
}
[ -f $FILE2 ] || error "$FILE2 not found"
[ -f $FILE1 ] || error "$FILE1 not found"
【问题讨论】:
标签: bash shell error-handling