加载列表(几个中的一个)从文本文件到Bash脚本

时间:2013-04-30 21:34:11

标签: bash list if-statement import

这是我今天早些时候发布的问题的更好的措辞和修改版本(可用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"

这个脚本没有传递所有属性(实际上只传递了一个,因为它没有在文本文件中的列表中循环),但我只想展示我正在寻找的东西。 是否可以根据传递的参数构建列表? 重要的是列表将保留其结构,因为其余的代码是针对它配置的。 我感谢你的任何输入,对不起双重帖.... 谢谢,

1 个答案:

答案 0 :(得分:2)

如果要复制数组,则必须执行正确的方法

$ foo=(a b c)

$ bar=( ${foo[*]} )

$ echo ${bar[1]}
b