Bash | GREP主机名列表| While和For循环
我正在尝试从属性文件中获取/grep几个键值。我能够使用单个服务器作为完整主机名来获取它 工作示例:Bash | GREP主机名列表| While和For循环,bash,shell,for-loop,while-loop,grep,Bash,Shell,For Loop,While Loop,Grep,我正在尝试从属性文件中获取/grep几个键值。我能够使用单个服务器作为完整主机名来获取它 工作示例: for i in hostname1; do echo $i ssh $i "egrep -w 'endpoint.address' /var/www/httpd/conf/server.properties" done endpoint.address=http://intserver-host/service/searchQuantity 输出: for i in hos
for i in hostname1; do
echo $i
ssh $i "egrep -w 'endpoint.address' /var/www/httpd/conf/server.properties"
done
endpoint.address=http://intserver-host/service/searchQuantity
输出:
for i in hostname1; do
echo $i
ssh $i "egrep -w 'endpoint.address' /var/www/httpd/conf/server.properties"
done
endpoint.address=http://intserver-host/service/searchQuantity
如果我想搜索主机名列表(主机名1到主机名50),我应该使用什么?我尝试了while和for循环,但没有成功
在和循环时使用,不工作:
server="hostname"
count=1
servername="${server}$count"
echo "Server $servername"
echo "Entering into while loop"
while [ $count -lt 50 ]; do
for i in servername; do
echo $i
ssh $i "egrep -w 'endpoint.address' /var/www/httpd/conf/server.properties"
done
let count=$((count+1))
done
结果:
Error: unknown servername :|
有我不知道的把戏吗?感谢您的帮助/指点
for i in servername
应该是
for i in $servername
如果您解决了这个问题,您将看到,$servername
不会更改每个迭代。仅在脚本顶部设置一次是不够的。您需要在每次循环开始时更新它
while [ $count -lt 50 ]; do
servername="${server}$count"
echo "$servername"
ssh "$servername" egrep -w 'endpoint.address' /var/www/httpd/conf/server.properties
let count=$((count+1))
done
此时,您可以切换到更简单的for
循环
for ((i = 1; i <= 50; i++)); do
servername="$server$i"
echo "$servername"
ssh "$servername" egrep -w 'endpoint.address' /var/www/httpd/conf/server.properties
done
应该是
for i in $servername
如果您解决了这个问题,您将看到,$servername
不会更改每个迭代。仅在脚本顶部设置一次是不够的。您需要在每次循环开始时更新它
while [ $count -lt 50 ]; do
servername="${server}$count"
echo "$servername"
ssh "$servername" egrep -w 'endpoint.address' /var/www/httpd/conf/server.properties
let count=$((count+1))
done
此时,您可以切换到更简单的for
循环
for ((i = 1; i <= 50; i++)); do
servername="$server$i"
echo "$servername"
ssh "$servername" egrep -w 'endpoint.address' /var/www/httpd/conf/server.properties
done