sed 変数拡張の問題

sed 変数拡張の問題

だから、私が書いているbashスクリプトでいくつかの進歩を遂げましたが、変数を拡張するために以下を書く方法を見つけることができないようです。私は一般的な$ {variable}と\ $(variable)と他のランダムな試みを試しましたが、それは役に立ちませんでした。

evalを使用して ""でラップしようとしましたが、まだ機能しません(コマンドラインで実行しない限り、bashスクリプトでは機能しません)。

sed -i 's/.*output_snat_lo.conf:/    - '\''\\-t nat -A POSTROUTING -s 10.0.0.1/32 -d $DNAT -j SNAT --to-source $SINT'\''\n&/' file.yaml

どんな提案がありますか?ティア。

ベストアンサー1

$DNAT一重引用符の内側を'"$DNAT"'終了一重引用符に変更し、二重引用符を開始し(単語の区切りを防ぐためにほぼ常に二重引用符内に変数を拡張したいので)、変数を入れて二重引用符を終了して一重引用符を再起動します。

sed -i 's|.*output_snat_lo.conf:|    - '\''\\-t nat -A POSTROUTING -s 10.0.0.1/32 -d '"$DNAT"' -j SNAT --to-source '"$SINT"\''\n&|' file.yaml

おすすめ記事