• 締切済み

UNIX ファイル存在チェックの方法

お世話になります。 UNIXにてファイル存在チェックを行うShellスクリプトを作成しています。 ■プログラム if (-f "text_file_*.txt") then echo "存在している" else echo "存在していない" endif ■問題点 IF文中の比較対照ファイルとして、ワイルドカード(*)を 指定しているのですが、文字列として認識されてしまいます。 この方法でワイルドカードとして処理を実行する方法はあるでしょうか? もしくは代替案などありましたら、ご教示いただきたいです。 よろしくお願いします。

みんなの回答

回答No.4

cshのようなので・・ ls text_file_*.txt >& /dev/null if ( $status == 0 ) then  echo "存在している" else  echo "存在していない" endif でどうでしょう。

noname#96023
noname#96023
回答No.3

#2です ごめんなさいさっきのじゃ駄目だ if [ `ls | egrep text_file_*.txt` ] ファイルが無い時はエラーが表示されるのできちんと処理する必要がありますけど

noname#96023
noname#96023
回答No.2

if [ ! 'ls text_file_*.txt | wc -l' ] then こんなのでどうでしょう

  • x1va
  • ベストアンサー率26% (802/3006)
回答No.1

ワイルドカードを使ったファイル存在チェックはtestコマンドでできます。これの戻り値で判定すればいいでしょう。 http://www.21linux.com/archives/2005/12/test.html

関連するQ&A