Bash 如何通过多个命令ssh循环

Bash 如何通过多个命令ssh循环,bash,ubuntu,ssh,command,Bash,Ubuntu,Ssh,Command,我是ssh新手,所以如果我的问题很琐碎,请原谅我。我需要让远程计算机多次执行一组命令,所以我正在考虑使用ssh进行循环。问题是我不知道我应该将这些命令保存在一个文件中并在该文件上循环,还是我可以将它们保存在ssh中并调用它们。我真的很抱歉麻烦..如果我做这样的循环 i= 10 while i!= 0 execute command.text file ??? i-- 如何告诉它执行该文件?只需首先在远程计算机的shell上尝试运行所需的命令 您将在internet上找到大量有关shell/b

我是ssh新手,所以如果我的问题很琐碎,请原谅我。我需要让远程计算机多次执行一组命令,所以我正在考虑使用ssh进行循环。问题是我不知道我应该将这些命令保存在一个文件中并在该文件上循环,还是我可以将它们保存在ssh中并调用它们。我真的很抱歉麻烦..如果我做这样的循环

i= 10
while i!= 0 
execute command.text file ???
i--

如何告诉它执行该文件?

只需首先在远程计算机的shell上尝试运行所需的命令

您将在internet上找到大量有关shell/bash/csh/whatevershell中循环的信息:

例如,假设bash在远程主机中运行(从:)


$for((i=1;i您可以编写一个简单的脚本来执行所需的命令,并将其路径发送到ssh。
例如:

script.sh,它将在您的一组命令上迭代10次:

for i in $(seq 10)
do
 command1
 command2
 command3
done
并将其路径发送到远程服务器以执行:
$ssh$SERVERNAME
如果您有这个
命令.text
文件,您已经在其中写入了列中的所有命令(您可以使用vi或vim修改它们并将它们放入列中),您甚至不需要执行循环,只需执行以下操作:

cat command.text | awk'{print”sshuser@remotehost“$0”“}”| sh-x

例如,如果
command.text
包含:

ls -lart 
cd /tmp
uname -a
这将允许您通过执行
ssh来执行
command.text
中编写的所有命令user@remotehost

for i in $(seq 10)
do
 command1
 command2
 command3
done
ls -lart 
cd /tmp
uname -a