我必须阅读配置文件,阅读后将 运行 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。
我有一个配置文件,其中包含
等详细信息 #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。