繁体   English   中英

Shell 中文本或 CSV 文件中的数组值

[英]Array Values from Text or CSV File in Shell

我有一个脚本,我在其中声明如下数组:

declare -a Pool=("Terrace|HouseTerrace_")
declare -a Library=("lib1 lib2 lib3")
declare -a Name=("Guru/Raju Albert Deepak")
declare -a Email=("Guru@american.com,Raju@american.com Albert@american.com Deepak@amaerican.com")
Sub=("Media Rotation")
i=0
while [ $i -lt ${#Pool[@]}  ]
do
command blah balh blah
i=`expr $i + 1`
done

现在我想要的是,与其在 aaray 中声明值,我应该从文件(文本或 csv )中导入它,或者有没有更好的方法来执行此任务。 我不想让用户访问脚本文件。

这是部分答案,以帮助启动 OP 工作。

bash“readarray”可用于从文件加载数组。 例如他们的代码declare -a email=("a@a.com" "b@b.com" ...)可以替换为

readarray email < email.txt

email.txt 在哪里(使用发布的数据)

Guru@american.com
Raju@american.com
Albert@american.com
...

另一个建议改进是使用for item in而不是while循环来迭代数组。 而不是i=0 ; while [ $i -lt ${#Pool[@]} ] ; do ... ; done i=0 ; while [ $i -lt ${#Pool[@]} ] ; do ... ; done

for p in "${pool[@]}" ; do
   command $p
done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM