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.