私が書いたこの小さなテストスクリプトを実行しています。
#!/bin/bash
TESTCASE=$@
testHarness <<runTest
$TESTCASE
runTest
コマンドラインから:
./test.sh "1092$212"
しかし、ドル記号は取り除かれています。私がそれをエスケープした場合、それは機能します。しかし、二重引用符でこれを行う必要から私を保護すると思いました。誰かが私に何が起こっているのか、そしてこれを修正する方法を理解するのを助けてくれますか?
問題は、あなたがここで何を望んでいるのか(私にとって人間であっても)あいまいであるため、コンピューターにチャンスがないことです。おそらく、bashインタープリターは$ 212を得ようとしています。存在しない変数を展開しようとすると、Bashは警告なしで失敗するため、$は取り除かれます。変数を角かっこで囲むことを検討してください。たとえば、「1092 $ {2} 12」
—
ブライアンピーターソン