いくつかの値のペアを持つスクリプトの行番号の後に行を追加するために、bashスクリプトにsedを使用する必要があります(作業の下)
sed -i.bak '14i\some_text=some_text' file
しかし、変数を展開するためにスクリプトbash(sh)が必要です(以下では機能しません)
sed -i.bak '$number_linei\$var1=$var2' $var3
一重引用符の代わりに二重引用符を使用してください。また、変数を正しく{}
区切り、もエスケープするために使用する必要があります。number_line
\
sed -i.bak "${number_line}i\\$var1=$var2" $var3
個人的には、すべての変数が を使用し{}
、最終的に次のようになることを望みます。
sed -i.bak "${number_line}i\\${var1}=${var2}" ${var3}
一重引用符を二重引用符に変更します。
man bash
:
Enclosing characters in single quotes preserves the literal value of
each character within the quotes.
Enclosing characters in double quotes preserves the literal value of
all characters within the quotes, with the exception of $, `, \, and,
when history expansion is enabled, !. The characters $ and ` retain
their special meaning within double quotes.