[英]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.