我正在运行我编写的这个小测试脚本:
#!/bin/bash
TESTCASE=$@
testHarness <<runTest
$TESTCASE
runTest
从命令行:
./test.sh "1092$212"
但美元符号正在被去掉。如果我逃避它,它就会起作用。但我认为双引号可以保护我不需要这样做。有人可以帮助我了解发生了什么事以及如何解决这个问题吗?
答案1
变量仍然在双引号内扩展。如果您想避免这种行为,您应该使用单引号。
我正在运行我编写的这个小测试脚本:
#!/bin/bash
TESTCASE=$@
testHarness <<runTest
$TESTCASE
runTest
从命令行:
./test.sh "1092$212"
但美元符号正在被去掉。如果我逃避它,它就会起作用。但我认为双引号可以保护我不需要这样做。有人可以帮助我了解发生了什么事以及如何解决这个问题吗?
变量仍然在双引号内扩展。如果您想避免这种行为,您应该使用单引号。