我必须阅读配置文件,阅读后将 运行 scp 命令从配置中的可用服务器中获取所有详细信息

I have to read config file and after reading it will run scp command to fetch all details from the available servers in config

我有一个配置文件,其中包含

等详细信息
 #pem_file username ip destination
 ./test.pem ec2-user 00.00.00.11 /Desktop/new/
 ./test1.pem ec2-user 00.00.00.22 /Desktop/new/

现在我需要知道如何修复以下脚本以使用 scp

获取所有详细信息
while read "$(cat $conf | awk  '{split([=12=],array,"\n")} END{print array[]}')"; do
scp -i array[1] array[2]@array[3]:/home/ubuntu/documents/xyz.xml array[4]
done

请帮助我。

像这样构建你的 while read

#!/bin/bash

while read -r file user ip destination
do
    echo $file
    echo $user
    echo $ip
    echo $destination
    echo ""
done < <(grep -Ev "^#" "$conffile")
  • 使用这些变量构建您的 scp 命令。
  • grep是删除注释掉的行。

如果您更喜欢使用数组,可以这样做:

#!/bin/bash

while read -a line
do
    echo ${line[0]}
    echo ${line[1]}
    echo ${line[2]}
    echo ${line[3]}
    echo ""
done < <(grep -Ev "^#" "$conffile")

有关使用 while 循环文件和命令输出的信息,请参阅 https://mywiki.wooledge.org/BashFAQ/001