実行中にスクリプトに変数を渡したいです。
前任者: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
(マニュアルページ)、またはgetopts
(POSIX、bash-hackers.orgのチュートリアル)。
それにもかかわらず、強力なスクリプトは、一部の変数が欠落している(設定されていない)状況を処理する必要があります。