处理带*的参数传递给unix

处理带*的参数传递给unix

我正在通过 unix 中的配置文件接收查询,例如。配置文件内容的格式为:

Table_name|query

ABC|select ABC.A,ABC.B from PQR left join (select * from ABC) on ABC.pk=PQR.pk

我正在尝试处理查询部分,如下所示:

    while read line in config_file
    do
        query=`echo $line|awk -F "|" '{print $1}'`
        result=hive -e "$query"
        ...

但是,查询变量中的“*”正在扩展为当前目录中的文件列表

您能否帮助如何转义该*角色,我搜索了解决方案但找不到。

答案1

您好 Saket Mankar,欢迎来到社区!

您需要$line用双引号将变量括起来:"$line"

那应该可以解决你的情况。

相关内容