2016-07-25 4 views
-2

次のスクリプトをシェルのコマンド文字列オプション(/ bin/sh -c)でエスケープしようとしています。command_stringオプションを使ってシェルスクリプトをエスケープして実行するには?

privateIP=$(ifconfig eth0 | grep "inet " | awk \'{print $2}\'); 
sed -i "s/http:\/\/:/http:\/\/$privateIP:/g" init.conf 

答えを詳しく説明してください。

+0

あなたが '/ binに/ shの-c'使用しているかを示すために必要があります。あなたがそれを割り当てたら '$ privateIP'で何をするつもりですか?返される値は、あなたが必要としているか期待しているものですか? WilliamPursellはstrやreplacmentに '/'の文字があるとき、つまり '' @ http .... @ ..... @ g ''のときに置換を行う正しい構文を表示しています。 。 sedエラーが発生した場合は、実行中のコマンドを正確に表示する必要があります。がんばろう。 – shellter

答えて

2

あなたが質問しているが、明確ではないが、おそらくあなたが探している:

sh -c 'privateIP=$(ifconfig eth0 | awk "/inet/{print \$2}"); 
    sed -i "[email protected]://:@http://$privateIP:@g" init.conf' 
+0

お返事ありがとうございます。私はあなたのコマンドを試してみました。-e式#1、char 27:unterminated 's 'コマンドのエラーです。参考資料シェルスクリプトの.shファイルを/ bin/sh -cオプションでインラインで実行しようとしていて、スクリプトのエスケープに固執しています – KarthikJ

関連する問題