プロが教える店舗&オフィスのセキュリティ対策術

お世話になります。

UNIXにてファイル存在チェックを行うShellスクリプトを作成しています。

■プログラム
if (-f "text_file_*.txt") then
echo "存在している"
else
echo "存在していない"
endif

■問題点
IF文中の比較対照ファイルとして、ワイルドカード(*)を
指定しているのですが、文字列として認識されてしまいます。
この方法でワイルドカードとして処理を実行する方法はあるでしょうか?
もしくは代替案などありましたら、ご教示いただきたいです。

よろしくお願いします。

A 回答 (4件)

cshのようなので・・



ls text_file_*.txt >& /dev/null
if ( $status == 0 ) then
 echo "存在している"
else
 echo "存在していない"
endif

でどうでしょう。
    • good
    • 1

#2です


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

if [ ! 'ls text_file_*.txt | wc -l' ] then



こんなのでどうでしょう
    • good
    • 1

ワイルドカードを使ったファイル存在チェックはtestコマンドでできます。

これの戻り値で判定すればいいでしょう。
http://www.21linux.com/archives/2005/12/test.html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!