cshで該当ディレクトリにファイルがなければOK、あればエラーというような処理をしようと思っています。
しかし、下記のような記述ではうまくできません。
1)
***************************
if ( -e $DIR/*.* ) then
echo "NG"
exit 1
else
echo "OK"
endif
exit 0
***************************
if文でなく、外にだせばうまくいくのですが...
2)
***************************
test -e $DIR/*.*
if($status == 0) then
echo "NG"
exit 1
else
echo "OK"
endif
exit 0
****************************
if ( test -e $DIR/*.* ) then...
でもだめでした。
どうにかしてif文で一発判定をしたいと思っているのですが、正しい記述方法を教えてください。
よろしくお願いします。
No.6ベストアンサー
- 回答日時:
一発判定ではなくても、警告が出なければ良いんですよね?
***************************
set FILE = (`ls $DIR | grep *`)
if ( $#FILE != 0 ) then
echo "NG"
exit 1
else
echo "OK"
endif
exit 0
***************************
これなら警告でないはずです。
ありがとうございます。
確かにその方法だと警告はでませんね。
私がやった方法は同じようにlsコマンドを使用しますが、
lsの結果をファイルにリダイレクトして、ファイルサイズを0かどうか判断する、という方法でした。
でも、sgt_lkさんの方法だと余計なファイルも作成しないのでこちらのほうがいいですね。
ありがとうございました。
No.5
- 回答日時:
#4です。
{ の後と } の前に空白を空けてください。ただこれは、#4で書いたとおり、2)の「test -e $DIR/*.* が上手く行く場合」という条件付です。これって、ファイルが無いときは警告メッセージが出て、複数個あるとエラーになりませんか?
if({ true $DIR/*.* }) then
だと、ファイルが複数個あってもOKですが、ファイルが無いと警告メッセージが出ます。
おっしゃるとおり空白をあけるとできました。
ありがとうございます。
>これって、ファイルが無いときは警告メッセージが出て、>複数個あるとエラーになりませんか?
複数ファイルでエラーにはなりませんが、確かにファイルがないと警告がでます。実はそれがいやだったのでif文の中に組み込めばそれがなくなるかなと思ったのです。
でも結果的にはif文に組み込んでも警告メッセージがでてしまいました。。。
ただ文法的にはこちらのほうがきれいなので教えていただいたやり方を使おうと思います。
No.4
- 回答日時:
手元に環境が無いので試せませんが、
>test -e $DIR/*.*
>if($status == 0) then
で上手く行くなら、
if({test -e $DIR/*.*}) then
でいけるはずです。{ } の意味については、man csh の式の節の演算子の後あたりに書いてあります。
この回答への補足
回答ありがとうございます。
>if({test -e $DIR/*.*}) then
で試しましたが、
}がありません。といったメッセージが表示され、エラーになってしまいました。
csh manを読むと確かに{}を使用して実行できそうなのですが。。。
No.3
- 回答日時:
すみません。
確かに参考で述べた方法ですと${DIR}ディレクトリのチェックにしかならないかも知れません。最後の手段!!これでどうでしょうか?
if( `ls -1 ${DIR}/ | wc -l` != 0 ) then
なんとなく汚くなってしまいましたがこれが精一杯のような気がします。(自分がですが。。。)
いかがでしょうか?
ありがとうございます。
確かにこれだとうまくいきますね。
う~ん。if文のなかで解決しようとするとやはりこういったやり方になってしまいますよね。
ありがとうございました!!
No.2
- 回答日時:
#1です。
確認しました。
Bシェルの場合であれば、1)の条件式で正常に動作しました。
Cシェルでは”*.*: 曖昧”ですと怒られました。
Cシェルは融通が利かないところがあるので悩むことが多かった記憶があります。
単純にこれではどうでしょうか?
if( -e ${DIR}/ ) then
${DIR}配下のファイルの存在確認だけであればこれでも良いとおもいます。
この回答への補足
回答ありがとうございます。
if( -e ${DIR}/ ) then
にて試してみましたが、ファイルが存在しなくても条件は真となってしまいました。
つまり1)の例でいえば"NG"となってしまいました。
そちらの環境ではうまく動作したのでしょうか?
だとすればこちらの環境に問題があるのかもしれませんが。。
No.1
- 回答日時:
はじめまして。
1)のif ( -e $DIR/*.* ) thenをif( -e $DIR/*.* ) then
にしてみては如何ですか?
※ifの直後のスペースを削る。
それでも駄目な場合は、$DIR/*.*を"${DIR}/*.*"としてみる。
現時点で確認できる環境がありませんので、間違っていたらごめんなさい。
明日以降でしたら確認が取れます。
中途半端でごめんなさい。
この回答への補足
はじめまして。回答ありがとうございます。
しかし回答のとおりやってみましたが、だめでした。
*(アスタリスク)はこのようなケースでは使用できないのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ゆるやかでぃべーと タイムマシンを破壊すべきか。
これはディベートの論題だと仮定したうえでの回答お願いします。あなたは、その末にタイムマシンを壊してしまうのか、使い道を探すのかどうかを考えてもらいたいです。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
cshでファイルサイズ取得
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
batである文字列内に特定の文字...
-
シェルスクリプトの変数の制限?
-
SONYの音楽ソフト「x-アプリ」...
-
Dirコマンドでフォルダ内ファイ...
-
ファイル名についている「-」と...
-
ディスク上のサイズを確認する方法
-
tar.bz2ファイルのインストール...
-
ピクチャクリッピングのファイ...
-
エクセルの表にヘンな枠が・・・
-
dig/host/nslookup コマンド...
-
emacsでCtrl+zを押してサスペン...
-
TOPコマンドで表示するCPU使用...
-
python IDLEで訂正、削除のやり...
-
"パイプが切断されました"の表...
-
ラズパイで『’test.service’をs...
-
タスクバーの音量アイコンをク...
-
-bash: ftp: コマンドが見つか...
-
マウントしたUSBメモリに書き込...
-
aquos HDD交換品について
-
linux初心者です wineをつかっ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
batである文字列内に特定の文字...
-
スクリプト中のexportコマンド...
-
kshでのNULLの比較
-
if文について
-
bashスクリプト
-
ファイルから文字列を読み込む...
-
シェルスクリプトの変数の制限?
-
shellスクリプトから別のshell...
-
Bシェル 文字列に含まれる特...
-
【sh】tee コマンドの代替方法
-
cshの条件式について教えてくだ...
-
Cシェルプログラムで、あるディ...
-
load averageが0.50を超えた時...
-
【シェルスクリプト】whileルー...
-
Bashでキーボードから入力は?
-
sedなどで、特定の文字列からタ...
-
Cシェルで標準エラー出力への...
-
rubyで、バッククォートの中に...
-
bashで変数の文字列を編集する...
-
Cシェルで、文字列中(str)に、...
おすすめ情報