BASH:パラメータを添え字に渡す

BASH:パラメータを添え字に渡す

次のスクリプトがあります。

#!/bin/bash

. config

./sub-script

構成には多くの変数があります./subscript arg1 arg2 ... arg100500
source

下付き文字で設定を使用できるようにする他の方法はありますか?

答え1

このようにスクリプトを設定できる場合

#!/bin/bash

. config

. /path/to/sub-script

初期化されたすべての変数は、config基本スクリプトとその変数が開始されたすべてのスクリプトで使用できる必要があります。

説明する

スクリプトは新しい非対話型シェルプロセスを開始し、親スクリプトで初期化されたシェル変数を使用できないようです。ただし、エクスポートされた環境変数は新しいサブプロセスで使用できる必要があります。

答え2

export変数を作成できます。

 VAR=foo
 export VAR

または:

 export VAR=foo

ただし、これらの変数は、すべての子プロセスの環境で見ることができます。

答え3

構成ファイルの絶対パス名を下付き文字に渡すことができます。たとえば、

#!/bin/bash

. ./config

./sub-script ./config

その後、下付き文字は次のことを行うことができます。

cfg="$1"
shift
. "$cfg"

空の$cfg場合は、デフォルト値を指定することもできます。$1

cfg=${1:-/path/to/default/config}

関連情報