2016-04-11 20 views
0

Kabuk betikleri için biraz yeni. İçinde özel bir karakter olan kabuk betiğimde bir komut var. Şimdi her kelimeden özel karakterden nasıl kaçacağımı bilmiyorum.Kabuk komut dosyasında bir komut içinde özel bir karakterin kullanılması

/app/home/apache243/bin/httpd -f Eğer apache $ yapılandırmaları özel karakteri ve alana sahip gördüğümüz gibi/app/apache $ yapılandırmaları/statichost1.conf

. Şimdi bu komuttan tüm özel karakterlerden çıkmak istiyorum: /httpd -f/. Şimdi bu özel karakter, /httpd -f/'dan önce ve sonra gelebilir. Yani bu apache $ 243 olabilir veya bu apache! 234 @. /httpd -f/öncesi ve sonrası. Ne istediğim

/app/SYMC altındadır/apache243/bin/httpd -f/app/apache \ $ \ yapılandırmaları/statichost1.conf

cevap

0

(tek tırnak kullanarak) böyle komutu yazın:

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

BTW, bu tür sorularla, hangi kabuk için cevap aradığınızı belirlerseniz, her zaman yardımcı olur. Bu özel durumda, alıntı, en azından bildiğim kabukların hepsinde aynı şekilde çalışır, bu her zaman olması gereken bir durum değildir.

+0

çalıştı -S vermedi. Yani her zaman String daha önce **/httpd - [A-z]/** ve sonra değişti. Ve özel karakteri içerebilirler. Ve bu, her komut kelimesinden özel karakterden kaçmak gibidir: **/httpd - [A-z]/**. @ user1934428 .it bir bash kabuktur. – vivek

0

Cevabı buldum. bu

var =/app/home/apache243/bin/httpd -f '/app/apache$configs/statichost1.conf' gibi değerle kabuk komut bir değişken var ve biz çalışırsanız (Apache Server yapılandırması için Özel) yürütmek

$ var

çalışmayacaktır -S. En azından benim için bu
çalışmak ama bu

eval $ var yapıyor Bu komut statik değildir çalışma zamanında oluşturulan olsun bana

İlgili konular