以下を含む変数v="c d e f g"
とファイルがあるとしましょう。
line1
$v
line3
ここでこの記事で説明したように、2行目の変数の内容を使用してこのファイルを印刷するbashスクリプトを取得するにはどうすればよいですか?
#!/bin/bash
v="c d e f g"
cat << EOF
line1
$v
line3
EOF
出力:
line1
c d e f g
line3
答え1
envsubst
ファイルを解析し、環境変数(envsubst
環境内にある)をその変数に置き換えるために使用されます。
$ v='c d e f g'
$ v=$v envsubst <file
line1
c d e f g
line3
または最初にエクスポートしてくださいv
。
$ export v
$ envsubst <file
line1
c d e f g
line3
私のシステムでは、envsubst
パッケージの一部として配布されますgettext
。