- ベストアンサー
Unix shellscriptの初歩
shellScriptを手に入れて、中身を理解しようとしています。その中に (1) if [ $# -ne 1 ]; then echo "****" (2) XX=$1 とありました。 これの説明をお願いできますか?当方、今、勉強し始めたばかりです。よろしくお願い致します。 (2)は、多分、 本スクリプトの引数だとは思います。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
シェルスクリプトを書いてtest.shという名前で保存したとします。 [name@localhost ~]$ sh test.sh hoge fuga とパラメータを付けて実行した場合に$#にパラメータの数(上の場合はhogeとfugaの2個あるので$#は2)、 $1には1番目のパラメータ(上の場合はhoge、$2はfuga以下同様)が入ります。
その他の回答 (3)
- takeshi123
- ベストアンサー率40% (4/10)
シェルスクリト(ファイル名 test.sh)というファイルを2つの引数 hiki1 hiki2 を渡して実行する場合は、コマンドが > sh test.sh hiki1 hiki2 となります。 $# というのは変数のことで引数の数をあらわします。今のコマンドの場合は引数を2個わたしたので、$#という変数に2という値が入ります。 $#が1ではないとき、****を表示させるというスクリプトなので引数を2個渡すと **** が表示されるわけです。
- devisbusy
- ベストアンサー率40% (2/5)
$#についてですが、 【man sh】 から 次のパラメタは、シェルが自動的に設定します。 # 定位置パラメタ数 (10 進数 ) なので、呼び出し時の引数がなければ、0です。 上記のスクリプトの場合 もし、スクリプト呼び出し時の引数が1個以外なら、"***"を表示しなさい。 って感じです。
もし $# が 1じゃなければ(ノットイコール)、echoで"****"を画面表示 XXに$1の値を入れる という感じですかね?
補足
$#が何を言っているのかが、わかりません。 そこのところが知りたい。宜しくお願い致します。
お礼
本当にありがとうございます。昨日本を買ってきました。 お恥ずかしい話・・・・今まで何がわからなかったかというと、 ShellScript と呼ぶことを知らなかったのです。 ShellScriptの初歩という本を買いました。書いてありました。 皆さんのご親切に感謝します。でも、本の中に掛かれていないものもあります。そういうものについて質問させていただきます。今後ともよろしくお願い致します。