【发布时间】:2020-11-07 17:12:34
【问题描述】:
我的文件有以下数据
IP USER PASSWORD
ip1 user1 password1
ip2 user2 password2
ip3 user3 password3
所以我在下面写了同样的脚本
#!/bin/bash
for val in `awk 'NR>1 {print}' servers.list`
do
echo $val
done
但是 for 循环已经执行了 9 次,如果我在引号中写了 awk 命令,那么它只执行一次。
如何编写脚本,以便 for 循环将每一行视为单个,以便我可以解析每一行并可以使用 pscp 将数据复制到多个服务器。
命令
pscp -p mypassword /home/user/myfile.txt user@ip:/home/user/myfile.txt
如果有任何更好的方法可以将文件复制到多个服务器然后请 指定它 bcz 我是脚本新手。
【问题讨论】:
-
为什么需要用awk运行shell循环。 awk 无需任何循环即可轻松生成相同的输出。
-
@anubhava 我正在学习脚本,所以如果你能分享你的知识或任何博客(如果已经在那里描述),那么我将不胜感激。顺便说一句,我也需要执行
pscp命令,这就是我这样做的原因。 -
你能分享一个
pscp命令的例子吗? -
@anubhava
pscp -p mypassword /home/user/myfile.txt user@ip:/home/user/myfile.txt -
首先将您的代码复制/粘贴到shellcheck.net 并修复它告诉您的问题。