ファイルから変数値を読み込むと、変数は何度もエコーされます。

ファイルから変数値を読み込むと、変数は何度もエコーされます。

ファイルから値を読み取り、その値をエコーするbashスクリプトを作成しようとしています。しかし、何らかの理由で正しく動作しません。私の最初のファイルの値は次のとおりです

Alts Risk UI,6C7D672E-929C-46CD-91C0-28ECB9C94D80,hec_json,app_altrisk_ui
app_compliance,B5F88C9B-8C17-411C-91FE-7166E023168C,_json,app_compliance
app_hsc_ui,1AF6F0EC-6E8D-4BEE-8EDE-4DCDE71F0074,hec_json,app_hsc_ui
app_legal,4FE57959-B948-4BD9-B750-F5E7E84539D8,_json,app_legal

値が正確に反映されるように、これらのスクリプトを作成しようとしています。

while IFS="," read name token sourcetype index; do
echo ./acs hec-token create --name $name --default-index $index --default-source-type $sourcetype --default-host sh-i-08d9fbd7e31581bd5.mydomain.com --allowed-indexes $index --use-ack=false --disabled=false --token $token
done < hec.csv

正確に何が起こっているのかわかりませんが、出力には他の内容が表示されます。エコーで$indexを2回引用したからです。必要な出力を表示するスクリプトをどのように生成しますか?

私の予想結果は

./acs hec-token create --name Alts Risk UI --default-index $index --default-source-type hec_json --default-host sh-i-08d9fbd7e31581bd5.mydomain.com --allowed-indexes app_altrisk_ui --use-ack=false --disabled=false --token 6C7D672E-929C-46CD-91C0-28ECB9C94D80

しかし、私が得た結果は

--use-ack=false --disabled=false --token 6C7D672E-929C-46CD-91C0-28ECB9C94D80.com --allowed-indexes app_altrisk_ui
     --use-ack=false --disabled=false --token B5F88C9B-8C17-411C-91FE-7166E023168Cm --allowed-indexes app_compliance
     --use-ack=false --disabled=false --token 1AF6F0EC-6E8D-4BEE-8EDE-4DCDE71F0074.com --allowed-indexes app_hsc_ui

ベストアンサー1

変数を含むファイルは、Excelからエクスポートされたcsv形式です。プレーンテキストファイルを使用して変数ファイルを再作成したところ、問題がなくなりました。

おすすめ記事