たとえば、次の変数を含むファイルがあります。
文書
DEVICE0_USB="usbSerialNo1"
DEVICE1_USB="usbSerialNo2"
この変数の内容をスクリプトの変数に割り当てたいと思います。たとえば、次のようになります。
スクリプト
FAX_MACHINE_USB=$DEVICE0_USB
COFFEE_MAKER_USB=$DEVICE1_USB
だから私がecho
$FAX_MACHINE_USB
受け取ったときusbSerialNo1
source
以下を使用して変数を取得できます。文書しかし、これはまたすべての行を実行します文書。私の場合、これは問題ではありません。なぜなら文書変数宣言だけがありますが、まだそうしたくありません。これを達成する他の方法はありますか?
ベストアンサー1
同様の質問に答えるようですここ。
もちろん、必要に応じて変数を使用または.
割り当てることができますが、ファイル内の特定の行のみを使用または実行するsource
こともできます。awk
grep
バラより可変減速と同じです。
さまざまな変数に対処する方法
にすべての変数を割り当てるには、
script1.sh
次の点を考慮してください。source <(grep -E '^\w+=' script1.sh)
これは、変数の割り当てのように見えるすべての行を
grep
抽出するために使用されます。script1.sh
その後、この行は現在のシェルで実行され、変数が割り当てられます。この方法を使用する場合は、まずすべての変数が必要か、実行中の操作を妨げる変数がないことを確認してください。そのような場合は、
grep
2番目のコマンドを使用して除外できます。各部分を順番に考えてください。
source file
file
現在のシェルで実行するようにシェルに指示します。
<(...)
プロセス置換と呼ばれます。これにより、ファイル名の代わりにコマンドの出力を使用できます。このコマンドは、
grep -E '^\w+=' script1.sh
変数の割り当てのように見えるすべての行を抽出します。コマンドラインでこのコマンドを単独で実行すると、次のような内容が表示されます。variable="Hello" var2="Value2"
など。まず、これを実行して出力を確認して、実行したい行が正しいことを確認する必要があります。