Escape-Characters

處理帶 * 的參數傳遞給 unix

  • January 24, 2020

例如,我通過 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"
       ...

但是,查詢變數中的“*”正在擴展到目前目錄中的文件列表

能否請您幫助如何逃脫*角色,我搜尋了解決方案但找不到。

嗨 Saket Mankar,歡迎來到社區!

您需要$line用雙引號將變數括起來:"$line".

那應該可以解決您的情況。

引用自:https://unix.stackexchange.com/questions/563853