2016-04-15 12 views
1

さんに不明なオプション 'のようにコマンドエラー「セッド」:は、私はMakefileの中に、以下のsedコマンドを持って

SNORT_OPTS=`echo -n "--disable-nls --disable-silent-rules --libdir=/usr/lib \ 
--host=x86_64-linux-gnu --build=x86_64-linux-gnu --enable-gre --enable-targetbased \ 
--enable-ppm --enable-sourcefire --enable-perfprofiling --enable-zlib \ 
--enable-non-ether-decoders" | 
sed -e 's/ +/ /'` 
sed -e "/OPTIONS :/s/:.*$$/: $$SNORT_OPTS/" -e '/OPTIONS :/a # SWE built : snort-2.9.8.2' < snort-2.9.8.2/etc/snort.conf | 
sed -f snort.conf.sed > snort-2.9.8.2/etc/snort.conf-new 

のMakefileが、それは、次のコマンドを生成し、実行時に問題がある:

SNORT_OPTS=`echo -n "--disable-nls --disable-silent-rules --libdir=/usr/lib \ 
--host=x86_64-linux-gnu --build=x86_64-linux-gnu --enable-gre --enable-targetbased \ 
--enable-ppm --enable-sourcefire --enable-perfprofiling --enable-zlib \ 
--enable-non-ether-decoders" | 
sed -e 's/ +/ /'` 
sed -e "/OPTIONS :/s/:.*$/: $SNORT_OPTS/" -e '/OPTIONS :/a # SWE built : snort-2.9.8.2' < snort-2.9.8.2/etc/snort.conf | 
sed -f snort.conf.sed > snort-2.9.8.2/etc/snort.conf-new 

ダブルドル($$​​)は、SNORT_OPTSでシングルドル($)に置き換えられました。エラーを与える

: のsed:-e式#、CHAR 68:sedコマンドは、二重ドルで正しく動作します `sの

に未知のオプション($$)。それは/bin/shになります送信するとき

$$hello 

:あなたはすでにあなたが別のドル記号とドル記号をエスケープすることができます気づいたようMakefileには、「$」

+2

「$$$$」は「$$」にならないはずですか? – andlrc

+0

あなたは '\ $ \ $'を使ってみましたか? – ClaudioM

+0

@andlrcありがとうございました RootPhoenix

答えて

2

と「$$」を置き換えないようにする方法

$hello 

になりますので、基本的にはあなただけの両方のドル記号をエスケープする必要があります。

$$$$ 

になります
$$ 
関連する問題