在阅读shell脚本时如何处理未找到的文件

时间:2013-04-08 14:19:56

标签: linux bash shell

我正在通过shell脚本从文件中读取字符串。 它是这样的:

count = 0
while read LINE
do
    count++
    if [ "$LINE" == "NONE" ]
    then
       echo "state is NONE"
    else
       if [ "$LINE" == "PLAYING" ]
       then
           echo "state is PLAYING"
       fi
    fi
done<$FILENAME

这是我从文件中读取的内容,以及我如何处理它,现在我想做其他事情,如果找不到文件,无论如何要做到这一点? 例如:

if[ file not found]
then
   do something
fi

3 个答案:

答案 0 :(得分:5)

if [ -f path_to_file ]
then
  echo "file was found"
else
  echo "file was not found"
fi

答案 1 :(得分:1)

您最好使用以下条件启动脚本:

if [ ! -f /your/file ]; then
    echo "file not found"
else
    ...
    proceed with your `while`, etc.
    ...
fi

答案 2 :(得分:1)

由于您正在尝试读取该文件,因此如果您具有读取权限,则可能应该测试该文件是否存在,

if [[ ! -f $FILENAME ]] || [[ ! -r $FILENAME ]]
then
    # do stuff
fi

-f测试以查看$FILENAME是否是常规文件,-r测试您是否(当前用户)具有读取权限。