Dolar işareti enterpolasyon bash tırnak içinde


9

Yazdığım bu küçük test komut dosyasını çalıştırıyorum:

#!/bin/bash

TESTCASE=$@
testHarness <<runTest
$TESTCASE
runTest

komut satırından:

./test.sh "1092$212"

ama dolar işareti çıkarılıyor. Kaçarsam çalışır. Ama çift tırnakların bunu yapmamdan koruyacağını düşündüm. Birisi neler olup bittiğini anlamama yardımcı olabilir mi?


Sorun şu ki, burada ne istediğinizi belirsiz - benim için bile - bu yüzden bilgisayarın şansı yok. Belki de bash tercüman 212 dolar kazanmaya çalışıyor. Var olmayan bir değişkeni genişletmeye çalışırsanız Bash sessizce başarısız olur, böylece $ çıkarılır. Değişkenlerinizi parantez içine almayı düşünün, örneğin "1092 $ {2} 12"
— Brian Peterson

Yanıtlar:


18

Değişkenler hala çift tırnak içine alınmaktadır. Bu davranıştan kaçınmak istiyorsanız, bunun yerine tek tırnak kullanmalısınız.


Teşekkür ederim. Bu çalışıyor. Bunun bir sebebi var mı?
— Amir Afghani

8
Evet. Bu şekilde tasarlandı! Alıntılanan bir dize içindeki değişkenleri genişletmek aslında oldukça yararlıdır. Bu bir özellik. Davranışı istemiyorsanız, tek tırnak işaretleri kullanın, bunun için tasarlanmıştır.
— Caleb
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.