abc.sh実行時に端末を介してスクリプトの変数を渡す方法

abc.sh実行時に端末を介してスクリプトの変数を渡す方法

実行中にスクリプトに変数を渡したいです。

前任者:sh abc.sh export id=3

ベストアンサー1

エクスポートされた変数と同じコマンドラインで設定された変数はプログラムに表示されます。

$ cat foo.sh
#!/bin/sh
echo "$foo"

$ foo=bar ./foo.sh
bar

$ export foo=bar
$ ./foo.sh
bar

ただし、より一般的なイディオムは、位置引数などに設定されたコマンドライン引数を使用することです$1$2

$ cat arg.sh
#!/bin/sh
echo "$1 and $2"

$ ./arg.sh alpha beta
alpha and beta

または、最初からいくつかの固定引数を削除するためにを"$@"使用した後、すべてのコマンドライン引数を取得するために使用します。shift名前付きパラメータの場合getoptマニュアルページ)、またはgetoptsPOSIXbash-hackers.orgのチュートリアル)。

それにもかかわらず、強力なスクリプトは、一部の変数が欠落している(設定されていない)状況を処理する必要があります。

おすすめ記事