シェルスクリプトは、コマンドプロンプトで実行されたかのようにコマンドを実行するだけです。シェルスクリプトを関数であるかのように実行できるようにしたいと思います…つまり、入力値または文字列をスクリプトに取り込みます。これを行うにはどうすればよいですか?
承認された回答:
シェルコマンドとそのコマンドの引数は、番号付きとして表示されます。 シェル変数: $ 0
script
のようなコマンド自体の文字列値があります 、 ./ script
、 / home / user / bin / script
または何でも。引数はすべて"$1"
として表示されます 、 "$ 2"
、 "$ 3"
等々。引数の数はシェル変数"$#"
にあります 。
これに対処する一般的な方法には、シェルコマンド getopts
が含まれます。 およびshift
。 getopts
Cのgetopt()
によく似ています ライブラリ関数。 シフトコード>
$ 2
の値を移動します $ 1
へ 、 $ 3
$ 2
へ 、 等々; $#
デクリメントされます。コードは最終的に"$1"
の値を調べます。 、 case
を使用して処理を行う …esac
アクションを決定してから、 shift
を実行します $ 1
を移動するには 次の引数に。 $ 1
を調べるだけです。 、そして多分 $#
。