Estou executando este pequeno script de teste que escrevi:
#!/bin/bash
TESTCASE=$@
testHarness <<runTest
$TESTCASE
runTest
na linha de comando:
./test.sh "1092$212"
mas o cifrão está sendo retirado. Se eu escapar, funciona. Mas pensei que as aspas duplas me protegessem da necessidade de fazer isso. Alguém pode me ajudar a entender o que está acontecendo e como corrigir isso?
O problema é que é ambíguo - mesmo para mim como humano - o que você quer aqui, para que o computador não tenha chance. Talvez o intérprete do bash esteja tentando obter 212 dólares. O Bash falha silenciosamente se você tentar expandir uma variável que não existe, portanto, o $ é retirado. Considere agrupar suas variáveis entre colchetes, por exemplo, "1092 $ {2} 12"
—
Brian Peterson