我有一个像下面这样的bash
脚本。在table
变量附近,我希望像我的脚本中那样使用反引号。
#!/bin/bash
[ $# -ne 2 ] && { echo "Usage : $0 database table "; exit 1; }
database=$1
table=$2
hive -e "alter table ${database}.`${table}` SET TBLPROPERTIES('EXTERNAL'='FALSE')"
这个脚本给我下面的错误提示:
script.sh: line 10: table: command not found
但是,如果我不在表变量附近使用反引号,则脚本可以正常工作。
但是,我需要在table
变量附近使用反引号。怎么做呢?
我也尝试了下面的方法:
hive -e "alter table ${database}.$(table) SET TBLPROPERTIES('EXTERNAL'='FALSE')"
我仍然遇到了相同的错误。
echo 'it is now`'"$(date)"'`'
是完全有效的:反引号是字面量,因为它们在单引号中,$()
被扩展,因为它在双引号中。 - Charles Duffy