在bash
腳本中,我必須檢查是否存在多個文件。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: [email protected]" 1>&2
exit 1
}
[ -f $FILE2 ] || error "$FILE2 not found"
[ -f $FILE1 ] || error "$FILE1 not found"
謝謝,這看起來不錯。只是'或'(||)應該是'和'(&&),我猜。 – Frank 2009-02-21 04:01:35
已經修復:)在晚上邏輯困難:) – 2009-02-21 04:09:14