如何读取输入文件并对每一行进行操作

如何读取输入文件并对每一行进行操作

给定一个由 IP 地址和字符串行组成的输入文件,如何循环遍历每一行,并使用 IP 地址和字符串执行命令?我想要为每一行运行的命令的示例是:

ssh [email protected] cat /etc/component10/version | grep 'Version\|Project' >> /tmp/component_ver.txt

假设不需要密码。我希望脚本足够强大,能够在“...(是/否)?”的情况下回答“是”。登录时遇到提示。

输入文件示例:

192.168.0.10 component10  
192.168.0.20 component20  
192.168.0.30 component30  

答案1

以下代码将执行您想要的操作。

while read -r server _; do ssh -n -o StrictHostKeyChecking=no root@"$server" "grep -E 'Version|Project' /etc/component10/version" >> /tmp/component_ver.txt; done < serverfile

答案2

cat INPUT|while read host component; do 
ssh -o StrictHostKeyChecking=no user@$host cat /etc/$component/version | grep 'Version\|Project' >> /tmp/component_ver.txt
done

相关内容