这是我今天早些时候发布的问题的更好的措辞和修改版本(可用Load List From Text File To Bash Script)。
目标:能够根据在调用期间传递给bash脚本的参数从domains.txt
文件加载特定列表。
文本文件列表结构/格式:
Monday_domains=( "google.com" "yahoo.com" .... "amazon.com" )
Tuesday_domains=( "google.com" "msn.com" .... "mozilla.com" )
Wednesday_domains= ( "abc.com" "cnbc.com" .... "NYtimes.com" )
Bash文件:
#!/bin/bash
domain=$1 #arg passed
source domains.txt
if [ "$domain" = "1" ]; then
domain_property="$Monday_domains"
elif [ "$domain" = "2" ]; then
domain_property="$Monday_domains"
else
domain_property="$Monday_domains"
fi
counter=0
for i in "${domain_property[@]}"
do
echo "${domain_property[counter]}"
grep "${domain_property[counter]}" domains.log
let counter=counter+1
echo "$counter"
done
echo "$counter"
这个脚本没有传递所有属性(实际上只传递了一个,因为它没有在文本文件中的列表中循环),但我只想展示我正在寻找的东西。 是否可以根据传递的参数构建列表? 重要的是列表将保留其结构,因为其余的代码是针对它配置的。 我感谢你的任何输入,对不起双重帖.... 谢谢,
答案 0 :(得分:2)
如果要复制数组,则必须执行正确的方法
$ foo=(a b c)
$ bar=( ${foo[*]} )
$ echo ${bar[1]}
b