我有参数文件,其中包含如下所示的数据
#host1 credentials
Host1=192.168.1.1
password=host1Password
#host2 credentials
Host2=192.168.1.2
password=host2password
我想使用shell脚本解析文本文件中的这些信息,并将这些值分配给变量。
$host1 = 192.168.1.1
$password1 = host1password
$host2 = 192.168.1.2
$password2 = host2password
我是shell脚本的新手,请帮助我实现这一点。
答案 0 :(得分:1)
我会使用一个实现数组的shell(bash或ksh),并执行此操作:
hosts=()
passwords=()
# read the file, populate the arrays
while IFS="=" read -r key value; do
case $key in
password) passwords+=( "$value" ) ;;
Host*) hosts+=( "$value" ) ;;
esac
done < params
# print the contents of the arrays
for ((i=0; i < ${#hosts[@]}; i++)); do
printf "%d\t%s\t%s\n" $i "${hosts[i]}" "${passwords[i]}"
done
0 192.168.1.1 host1Password
1 192.168.1.2 host2password