- - PR -
シェルスクリプトについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-05-19 13:59
お世話になっております。
シェルスクリプトについて一点伺いたいことがあります。 カレントディレクトリがあるディレクトリ以下のときに コマンドを実行させないようにしたいのですが ちょっとうまく表現できないでいます。 カレントディレクトリ(pwdで取れます)が /dirとか/dir/aとか/dir/a/bとか/dir/cとかの場合 exitさせるというのをうまくif文にしたいのですが C_DIR=`pwd` (カレントディレクトリ) として if [ $C_DIR = /dir/* ]とかにしてしまうと 「パラメータが多すぎます」とか言われてしまいます。 なにか参考になるネタがあるようでしたら 教えて頂けないでしょうか? |
|
投稿日時: 2003-05-19 17:02
おそらく期待しているのとは違うやり方だとは思いますが・・・。
判定するディレクトリが決まっているなら(ってか,決まっていないと判定できませんね), cutかawkあたりで文字列を切り取っちゃってはどうでしょう。 /dirならこんな感じ。 DIR_PREFIX=`pwd | cut -d'/' -f-2` if [ "$DIR_PREFIX" = '/dir' ] awkでもできるでしょう。awkは便利ですが,オーバースペックで処理が重そうなので, 文字列の切り取りだけなら,わたしはcutを使うことが多いです。 (シェルスクリプトで重さを気にするのはバカバカしいことかも知れませんが) [ メッセージ編集済み 編集者: raccoon 編集日時 2003-05-19 17:44 ] |
|
投稿日時: 2003-05-19 18:50
racconさんありがとうございます。
/dirなら/dirにだろうが、/dir/aでも/dir/a/bでも /dirが必ず該当するってことですね。 ちょっと取り入れていろいろ実験してみます。 ありがとうございました。 |
|
投稿日時: 2003-05-19 22:35
/etc/rc.d/init.dあたりのスクリプトを参考にしてみてはいかがでしょう。
C_DIR=`ls -R` for DIR in C_DIR; do 〜 って感じと思いますが。 |
1