【发布时间】:2025-12-11 05:15:01
【问题描述】:
我尝试执行以下命令:
su -l user1 -c "hive -e \"ALTER TABLE schema1.table1 DROP IF EXISTS PARTITION (att1=\"$val\");\""
我得到了错误:
FAILED: ParseException line 1:81 cannot recognize input near 'val1' ')' '<EOF>' in constant
所以这里的问题是由于第二级嵌套的双引号,其间有变量$val,其值为val1。
你能帮我解决吗?最好是给我一个嵌套引号的规则。
【问题讨论】:
-
"hive -e \"ALTER TABLE schema1.table1 DROP IF EXISTS PARTITION (att1=\\\"val1\\\");\""怎么样? -
为什么不在外面用单引号呢?删除一级转义。
-
@kvantour 我已经进行了编辑。实际上我应该使用变量 $val 而不是直接使用字符串 val1。
-
variable substitution 不适合这种任务吗?
标签: bash escaping quotes double-quotes