shell - shell脚本读取一行并逐行处理
问题描述
我在同一行中有服务器的 fqdn 和该服务器的用户的以下文件。猫服务器.txt
server1 user1 \n
server2 user2 \n
server3 user3 \n
我正在编写一个 shell 脚本,我可以一次使用一个服务器来执行 ssh 并在那里执行一些命令并移动到下一个服务器。例如,ssh 到 server1 和 sudo 到 user1 并做这些事情,而不是移动到 server2。所以我写在下面并尝试调整但没有找到解决方法。它不工作。请帮忙。
ROOT_PATH=/home
SERVERS_FILE=servers.txt
while IFS= read -r line; do
server=`cut -d' ' -f1 $line`
user=`cut -d' ' -f2 $line`
echo $server ::: $user
echo "grep -rw lookeupword $ROOT_PATH/$user" | ssh $server "sudo -iu $user bash"
done <<< "$SERVERS_FILE"
解决方案
这将起作用。
#!/usr/bin/env bash
ROOT_PATH=/home
SERVERS_FILE=servers.txt
while IFS= read -r line; do
server=$(echo -n ${line} | awk '{print $1}')
user=$(echo -n ${line} | awk '{print $2}')
echo $server ::: $user
#echo "grep -rw lookeupword $ROOT_PATH/$user" | ssh $server "sudo -iu $user bash"
done < "$SERVERS_FILE"
推荐阅读
- multithreading - How to load a large .yml file to predict a face using python's opencv?
- javascript - how could I change the opacity of a div?
- mysql - MySQL查询到列的唯一组合
- php - 如何将多个值从laravel中的控制器传递给路由
- javascript - 如何从 vanilla js 中的多个 ajax 调用中累积数据
- angular - 更改 .ts 文件中的值并将其保存在 app ionic 中
- angularjs - 具有多个条件的 ng-class
- android - 谷歌插件服务给了我一个错误
- r - 根据单独的索引重命名行
- python - pandas DataFrame 上的位置字符串格式