2012-08-08 12 views
9

Bir komut dosyası var s1 diyelim ve $1 argümanını foo bar değeriyle birlikte boşlukta geçirmem gerekiyor. Bu başka bir komut dosyasında yukarıdaki komutu çalıştırmak istediğinizde (s2 diyelim), nasıl koymalıyım,betik argümanını bash betiklerinde boşlukla nasıl geçmeli

./s1 "foo bar" Ancak

yapılabilir? Yukarıdaki gibi koyarsam, foo bar, iki argüman olarak (s1 yerine) birer birer olarak yorumlanacaktır.

cevap

15

Sen $1 alıntı deneyebilirsiniz:

./s2 "$1" 
+0

kullanmak düşünün için mi? Argümeni 's2''ye değil,' 's'''üne aktarmam gerekmiyor. – Richard

+0

@Richard Ne sorduğundan emin değilim. Açıklayabilir misin ? – cnicutar

-4

ne dersiniz:

./s1 foo\ bar 

Keşke işin?

+0

bu işe yaramıyor ... olsa – Richard

+1

Öneriniz için teşekkürler. Bu yazıya yorum yapma yeteneğine sahip olmak için yeterli bir itibarım yoktu. Bir dahaki sefere bunu aklımda tutacağım. – kch

1

Tek tırnak işaretleri kullanın. yapacağınız `` s2`` neye benzediğini açıklayabilir misin yapmak

./script 'this is a line'

değişken ikameler çift tırnak

./script "this is a line"

İlgili konular