【发布时间】:2023-04-03 21:47:02
【问题描述】:
我有一个变量,它来自一些类似的地方:
VAR1='hhgfhfghhgf"";2Ddgfsaj!!!$#^$\'&%*%~*)_)(_{}||\\/'
现在我有这样的命令
./myscript.sh '$VAR1'
我从某个 diff 过程中获得了 $VAR1,当我显示它时,它看起来与上面的完全一样。
现在该命令失败了,因为变量中已经有单引号。在我使用它的过程中,它会在该点展开,从而导致该错误。
我可以控制 myscript.sh 但不能高于命令。
有什么方法可以在我的脚本中获取变量?
【问题讨论】:
-
bash中的变量不要在=的任何一侧占用空格。它不应该是var = 1,而是var=1 -
@Inian 加上左边的变量没有美元符号。也就是说,我很好奇答案。
-
./myscript.sh '$VAR1'不能自行失败,因为变量没有被扩展。 -
有人搞砸了
eval声明吗?请包含显示错误的MCVE -
@Master :请在您的问题中更加准确。您在此处提供的两个语句在语法上没有任何错误,因此如果有任何可能失败,那一定是在评估
myscript.sh期间,但由于我们不知道此脚本中的内容,因此我们无法判断发生了什么错误的。除此之外,将字符串$VAR传递给脚本的整个概念(而不是变量VAR的内容对我来说看起来很奇怪,但你可能会知道你在这里做什么......