2016-04-11 18 views
0

シェルスクリプトの新機能はほとんどありません。私はそれに特殊文字を持つシェルスクリプトのコマンドを持っています。今私は各単語から特殊文字をエスケープする方法を知らない。シェルスクリプト内のコマンド内で特殊文字をエスケープする

/アプリ/ホーム/ apache243/binに/のhttpd -f /アプリ/ apacheの$のコンフィグ/ statichost1.conf

あなたはApacheの$のコンフィグを見るようには特殊文字とスペースがあります。今度は、/httpd -f/以外のすべての特殊文字をこのコマンドからエスケープしたいと思います。今この特殊文字は/httpd-f/の前後に来ることができます。つまり、apache $ 243 thisまたはthis apache! 234 @。 /httpd -f /の前後に入力します。私が望んでいたことは(一重引用符を使用して)、このようなコマンドを書く

/アプリ/ SYMC/apache243/binに/のhttpd -f /アプリ/のapache \ $ \のconfigs/statichost1.confの下

答えて

0

です:

/app/symc/apache243/bin/httpd -f '/app/apache$ configs/statichost1.conf' 

この種の質問では、回答を検索しているシェルを指定すると、常に役立ちます。この特定のケースでは、私が知っているすべてのシェルで引用符が同じように動作しますが、これは必ずしもそうである必要はありません。

+0

私のために働いたが-Sやっていなかった、それは静的ではありません、実行時に生成されます。 **/httpd - [A-z]/**以降の文字列が変更されるたびに毎回変更されます。そして彼らは特殊文字を含むことができた。 **/httpd - [A-z]/**以外のコマンドの各単語から特殊文字をエスケープするようなものです。 @ user1934428 .itはbashシェルです。 – vivek

0

私は答えを見つけました。 我々はこの

VAR = /アプリ/ホーム/ apache243/binに/のhttpd -f '/app/apache$configs/statichost1.conf' のような値でシェルスクリプト内の変数を持っていると我々はしようとした場合(Apacheサーバの設定に固有)を実行

の$ varが

が動作しません-S。少なくとも私にとっては
を動作しますが、この

のevalの$ varは このコマンドは

関連する問題