- 締切済み
シェルスクリプトの問題が分かりません。
引数に複数の整数を与えたときに、それらの和を計算するシェルスクリプトを作成する。具体的には $ ./sum.sh 1 2 3 4 5 15 のようになるシェルスクリプトである(引数の個数は可変とする)。 どうしてもわかりません。どうか、よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- entree
- ベストアンサー率55% (405/735)
sum=0 for i in "$@"; do sum=`expr $sum + $i done echo $sum こんな感じでしょうか。
- kmee
- ベストアンサー率55% (1857/3366)
あ、あともう一つやりかたあった。 ・あなたが得意なプログラム言語で、問題と同じ動作をするプログラムを作って、それに丸投げする。 例えば、 C言語で sum.c を作ってコンパイルして sum を作ったら #!/usr/bin/sh #↑は環境に合せて ./sum "$@"
- kmee
- ベストアンサー率55% (1857/3366)
わからないのはどの部分でしょう? ・使うシェルは? →スクリプトにするのだから、 Bシェル系だと思うけど、なにも書いてないのでCシェルかもしれないし、Bシェルでも素のshなのか、bash等の拡張版なのかわからない。 シェルが違えば、当然スクリプトで使える機能も変ってくるので、確認すること。 ・コマンドライン引数を受けとる方法? →$1,$2,....といった「位置パラメータ」に入ります ・可変個の引数を扱う方法? →アイディアは2つ $*や$@と for 文を使うもの shift と while を使うもの それぞれの動作や使い方は、 man bash (bashのスクリプトを作る場合。違うシェルならそれに合せて)、 info bash(同: ただし、infoに対応していない場合もある)等として確認してください ・足し算のやりかた? →伝統的には expr コマンド。 詳しくは man expr シェルによっては、算術計算できるものもある。詳しくは、各マニュアルで、変数展開のあたりを隈無く読んでみる。