• ベストアンサー

Unix shellscriptの初歩

shellScriptを手に入れて、中身を理解しようとしています。その中に (1) if [ $# -ne 1 ]; then echo "****" (2) XX=$1 とありました。 これの説明をお願いできますか?当方、今、勉強し始めたばかりです。よろしくお願い致します。 (2)は、多分、 本スクリプトの引数だとは思います。

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.3

シェルスクリプトを書いてtest.shという名前で保存したとします。 [name@localhost ~]$ sh test.sh hoge fuga とパラメータを付けて実行した場合に$#にパラメータの数(上の場合はhogeとfugaの2個あるので$#は2)、 $1には1番目のパラメータ(上の場合はhoge、$2はfuga以下同様)が入ります。

その他の回答 (3)

回答No.4

シェルスクリト(ファイル名 test.sh)というファイルを2つの引数 hiki1 hiki2 を渡して実行する場合は、コマンドが > sh test.sh hiki1 hiki2 となります。 $# というのは変数のことで引数の数をあらわします。今のコマンドの場合は引数を2個わたしたので、$#という変数に2という値が入ります。 $#が1ではないとき、****を表示させるというスクリプトなので引数を2個渡すと **** が表示されるわけです。

noname#95859
質問者

お礼

本当にありがとうございます。昨日本を買ってきました。 お恥ずかしい話・・・・今まで何がわからなかったかというと、 ShellScript と呼ぶことを知らなかったのです。 ShellScriptの初歩という本を買いました。書いてありました。 皆さんのご親切に感謝します。でも、本の中に掛かれていないものもあります。そういうものについて質問させていただきます。今後ともよろしくお願い致します。

回答No.2

$#についてですが、 【man sh】 から 次のパラメタは、シェルが自動的に設定します。 # 定位置パラメタ数 (10 進数 ) なので、呼び出し時の引数がなければ、0です。 上記のスクリプトの場合 もし、スクリプト呼び出し時の引数が1個以外なら、"***"を表示しなさい。 って感じです。

noname#198951
noname#198951
回答No.1

もし $# が 1じゃなければ(ノットイコール)、echoで"****"を画面表示 XXに$1の値を入れる という感じですかね?

noname#95859
質問者

補足

$#が何を言っているのかが、わかりません。 そこのところが知りたい。宜しくお願い致します。

関連するQ&A

専門家に質問してみよう