- ベストアンサー
UNIXシェルプログラミングの勉強中|メニュープログラム作成時につまづいています
- UNIXシェルプログラミングの初心者が、メニュープログラム作成でつまづいています。
- 具体的には、新しいディレクトリを作成するという処理で、既存ディレクトリの確認やユーザーへの警告が必要です。
- 乏しい知識から作成したコードになりますが、ディレクトリの作成まではできています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ちょこっとエラー制御いれてこんな感じで・・・ #!/bin/sh echo -n "dirname ? "; read dir if [ -z $dir ] ; then $0; elif [ -f $dir -o -d $dir ] ; then echo "ng"; else mkdir $dir; echo "ok"; fi
その他の回答 (3)
- OKwebb
- ベストアンサー率44% (92/208)
一般ファイルでもエラーになると思いますので ------------------------------------------- if [ -f $newdir ]; then 警告処理 exit 1 else mkdir $newdir echo "$newdirを作成しました。" fi exit 0 ------------------------------------------- な感じで
お礼
シンプルでわかりやすい回答をいただき、助かりました。exitは習っていないので、調べて使えるようにしたいと思います。 ありがとうございました!
- tormmy77
- ベストアンサー率44% (4/9)
存在チェックだけならこんなかんじ。 警告も出すならelseすればいい。 ググればこれくらいはたくさん出てくるぞー がんばれ!学生! if [ ! -d 作るディレクトリ ]; then mkdir 作るディレクトリ fi
お礼
目が疲れるまでググったんですが、なかなか「これ!」と思えるような検索結果にたどり着けず・・・。要するにまだシェルプログラミングをしっかり理解できていないんですね(-_-;)。 コマンドそれぞれは使えるんですが、それがシェルの制御文の中に入るとパニック状態です。 教えていただいたものを元に、がんばります!ありがとうございました。
- yambejp
- ベストアンサー率51% (3827/7415)
>存在していたらユーザーに警告 あってもなくても強制的に実行という考えはないのでしょうか? また、カレントの属性によっては書き込みができずにエラー が出る可能性もありますが、エラーチェックはどこまで 厳密にしたいのでしょうか? 入力された文字の整合性をバリデートする必要はないのでしょうか?
補足
存在していたら「そのディレクトリはすでに存在します。新しく別のディレクトリを作成してください」というようなメッセージとともに、新ディレクトリ名の入力を促す方向でいきたいです。 学校の課題なのですが、エラーチェックは必ずせよという以外には何の指示もないので、さほど厳密なものでなくていいようです。整合性についても同様です。 なにしろたった2回の授業でプログラミングせよというので、途方に暮れています。どうぞよろしくお願いします。
お礼
教えていただいたのを拝見して、それぞれの制御文のオプションが自分の課題だなーと思いました。コツコツ調べて自分のものにしていきたいと思います。 ありがとうございました!