私はシェルスクリプトに初めて触れました。少しずつ学んでいます。私はPHPに慣れていて、今は私に不利に働いています。
とにかく私は次のようにシェルスクリプトを作成し、入力を読んでいます。
read $foo
これで、次のようにsed文字列の置換にこの変数を使用したいと思います。
sed -i 's/replaceme/$foo' myfile.txt
私が得ることは、$ fooが実際には同じではない文字通りの代替です。代わりに、私はそれがユーザーの入力になりたいです:
例:
この行(read $foo
)を使用してください。 「bar」と入力したとしましょう。だから$foo='バー'ユーザー入力から。
現在の出力:
$foo
希望の出力
bar
これが意味があることを願っています。
答え1
短い答え:一重引用符の代わりに二重引用符を使用してください。
一重引用符はシェル変数の拡張を防ぎますが、二重引用符はありません。
詳細については、次を参照してください。http://www.grymoire.com/Unix/Quote.html
詳細はシェルのドキュメントに含まれており、シェルごとにわずかな違いがありますが、基本はほとんどすべてのUnixスタイルのシェルで同じです。