Bazı nedenlerden dolayı, boşluk karakterleri olan bağımsız değişkenleri kabul edebilmem için komut dosyasına ihtiyacım var. aşağıdaki gibi örneğin ben bir komut dosyası varsa,Kabuk komut dosyasında boşluk içeren bağımsız değişken geçiriliyor
for SOME_VAR in [email protected]
do
echo "$SOME_VAR"
cd "$SOME_VAR"
done;
Ben komut dosyasına argümanları geçerse
sh foo.sh "Hello world"
Ben Merhaba dünya yazdırmak için komut bekliyorum (foo.sh denir varsayarak) ve dizini "Merhaba dünya" olarak değiştirin. Ama bunun yerine
hello
cd: 5: can't cd to hello
world
cd: 5: can't cd to world
yüzden bir kabuk içinde bir komuta uzay karakter ile argüman geçmesi nasıl tam olarak bu hata mesajını almak ?!
XD cevabınız için teşekkürler, bu yanıtı kendim yanıtlamaya gidiyorum, biraz daha açıklama http://tldp.org/LDP/abs/html/internalvariables.html#ARGLIST – Jeffrey04
Ama eğer $ @ bir liste oluşturuyorsa " etrafında temelde bir uzun dizeye birleştirirdi.Yukarıda yineleme olmaz mı? Ve bu durumda bir for döngüsü, normal bir "echo" $ @ "; cd" $ @ sahip gerçek bir kullanımı yoktur " " İçinde satırlar arası kesinti sınırlarını değil, boşlukları sınırlamak için "kullanabileceğim bir çözüm var mı? –
@AndreasWederbrand: Hayır" $ @ "," her bir kişiyi sarma "anlamına gelen özel bir belirtecidir tırnak içinde ". Yani" a "bc", "abc" veya "a" "b" "c" yerine "a" "bc" ye dönüşür. –