#!/bin/bash while read -r line do ssh root@${line} done < /home/babyzhang/ip_list.txt这个脚本执行的时候为什么报错
时间: 2023-12-05 08:06:22 浏览: 127
这个脚本报错的原因可能是您没有为 ssh 命令指定要执行的操作,例如您尝试连接到远程服务器,但没有指定要在远程服务器上执行的命令。如果您只是想连接到远程服务器,请尝试添加一个空指令,如下所示:
```
#!/bin/bash
while read -r line
do
ssh root@${line} ""
done < /home/babyzhang/ip_list.txt
```
或者,如果您想在远程服务器上执行命令,请将要执行的命令添加到 ssh 命令后面,如下所示:
```
#!/bin/bash
while read -r line
do
ssh root@${line} "ls -l /"
done < /home/babyzhang/ip_list.txt
```
请注意,这里的命令 "ls -l /" 仅作为示例。您应该将其替换为您要在远程服务器上执行的实际命令。
相关问题
#!/bin/bash filename="/home/yjc/run_result.txt" while read line; do echo "$line" done < $filename
这是一个简单的 Bash 脚本,它会读取一个名为 "/home/yjc/run_result.txt" 的文件,并将文件中的每一行输出到控制台上。
具体来说,这个脚本会使用一个 while 循环来逐行读取文件,然后将每一行存储在变量 $line 中。接着,脚本会使用 echo 命令将 $line 变量的值输出到控制台上。
最后,这个脚本会通过重定向将文件的内容输入到循环中,从而实现逐行读取文件的功能。
如果你有任何关于这个脚本的问题,请随时问我!
#!/bin/bash for i in {1..9}; do ssh-copy-id 10.2.220.10$i; scp /root/.ssh/*10.2.220.10$i:/root/.ssh/; done
这个脚本的作用是通过循环迭代的方式,将本地机器的 SSH 公钥复制到多个远程主机上,并将本地机器的 SSH 密钥文件复制到远程主机。
脚本的具体执行过程如下:
1. 通过循环 `for i in {1..9}` 遍历数字1到9。
2. 在每次循环中,使用 `ssh-copy-id` 命令将本地机器的 SSH 公钥复制到 IP 地址为 10.2.220.10$i 的远程主机上。这将允许您在不需要输入密码的情况下通过 SSH 连接到远程主机。
3. 使用 `scp` 命令将本地机器的 `/root/.ssh/` 目录下的所有文件复制到远程主机的 `/root/.ssh/` 目录下。这将包括 SSH 密钥文件和其他相关文件。
请确保在执行此脚本之前,已在本地机器上生成了 SSH 密钥对,并将公钥添加到远程主机的 `authorized_keys` 文件中。此外,还应确保本地机器和远程主机之间可以通过 SSH 进行连接,并且具有适当的权限来执行这些操作。
阅读全文