1

シェルスクリプトでファイルから文字列を読み取っています。こんなふうになります:

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
4

3 に答える 3

5
if [ -f path_to_file ]
then
  echo "file was found"
else
  echo "file was not found"
fi
于 2013-04-08T14:23:03.160 に答える
1

次のような条件でスクリプトを開始することをお勧めします。

if [ ! -f /your/file ]; then
    echo "file not found"
else
    ...
    proceed with your `while`, etc.
    ...
fi
于 2013-04-08T14:21:35.333 に答える
1

ファイルを読み取ろうとしているので、ファイルが存在するかどうか、および読み取りアクセス権があるかどうかをテストする必要があります。

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

が通常のファイルであるか-fどうかを確認するテストは、あなた (現在のユーザー) が読み取りアクセス権を持っているかどうかを確認するためのテストです。$FILENAME-r

于 2013-04-08T15:34:57.090 に答える