2016-06-22 9 views
0

makefileにコマンドの入力文字列があります。メイクファイルのSedコマンド

@read -p "Enter Web Url:" weburl; \ 

weburl変数は、makefileの以下のsedコマンドで使用します。

@read -p "Enter Web Url:" weburl; \ 
sed 's/^\(ServerName:\)$/\1 $$weburl/' $(LOCALCONFIGDIR)/myfile.conf 

しかし、入力を読み込んだ後でsedコマンドを実行していません。

答えて

1

特にシェルステートメントで使用される場合は、Makefileに$という記号があることに注意してください。あなたはこれであなたのsedコマンドを置き換えることができ :

sed 's/^\(ServerName:\)$$/\1 '$$weburl'/' $(LOCALCONFIGDIR)/myfile.conf 

行の終わりが$$であることに注意してください。変数の置換は一重引用符'で行うことはできないことに注意してください。なぜなら、その変数が変数の外にあるからです。いくつかのsed最適化

、私はむしろあなたにこれをお勧めする:シェルがワイルドカード展開と引用符で囲まれていない値の空白トークン化を行うにしようと、任意の引用符の外にURLを置く

sed "/^ServerName:/s/$$/ $$weburl/" $(LOCALCONFIGDIR)/myfile.conf 
+0

は、una​​dvisableです。しかし二重引用回答は良いです。 – tripleee

関連する問題