从文件中读取变量值时多次回显变量

从文件中读取变量值时多次回显变量

我正在尝试编写一个 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

我不确定到底发生了什么,但输出显示了其他内容。我认为这是因为我在 echo 中引用了 $index 两次。如何创建一个显示我需要的输出的脚本。

我期望的输出是

./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 格式。我使用普通文本文件重新创建了变量文件,问题就消失了。

相关内容