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"

これで状況が解決します。

関連情報