最终的目标是让我的bash脚本在多个服务器上执行命令.我几乎已经设置好了.我的SSH身份验证工作正常,但这个简单的while循环正在扼杀我.当我执行while循环,读取我的文件中的主机名时,它运行时运行正常
ssh $ HOST"uname -a"
但是当我尝试运行另一个ssh命令时
ssh $ HOST"oslevel -s"
while循环提前结束!我无法弄清楚. 为什么while读取do循环使用第一个命令完全正常运行,但是当第二个命令添加时却没有?
我有一个名为hosts.list的简单文本文件,它有4个主机名,每行一个.
$ cat hosts.list
pcced1bip04
pcced1bit04
pcced1bo02
pcced1bo04
$ cat getinfo.bash
#!/bin/bash
set -x
while read HOST
do
echo $HOST
ssh $HOST "uname -a"
#ssh $HOST "oslevel -s"
echo ""
done < hosts.list`
Run Code Online (Sandbox Code Playgroud)
当它运行时,它工作正常.它逐行浏览文件并获取结果"uname -a".所以一切都很好,对吗?(对不起,但我打开了set -x).
$ ./getinfo.bash
+ read HOST
+ echo pcced1bip04
pcced1bip04
+ ssh pcced1bip04 'uname -a'
AIX pcced1bip04 1 6 0001431BD400
+ echo ''
+ read HOST
+ echo pcced1bit04 …Run Code Online (Sandbox Code Playgroud)