bash - 期望在 while/for 循环中不使用 ssh 参数
问题描述
我正在尝试包含“for”或“while”循环来输入 IP 列表
即使我尝试使用以下解决方案, 在 shell 脚本中的 while 循环中运行期望命令
#!/bin/bash
while read p; do
{
/usr/bin/expect<<EOF
set timeout 3
spawn ssh -q -o StrictHostKeyChecking=no "root@192.168.102.$p" cat
/sys/class/net/enp0s3/address
expect "Password:"
send "xxxx\r";
interact
EOF
}
done<IP
下面是输出,在这里您可以在每次迭代中看到,命令执行没有发生,仅在终端中打印/回显
spawn ssh -q -o StrictHostKeyChecking=no root@192.168.102.105
cat /sys/class/net/enp0s3/address
root@192.168.102.105's password: spawn ssh -q -o StrictHostKeyChecking=no
root@192.168.102.106 cat /sys/class/net/enp0s3/address
root@192.168.102.106's password: spawn ssh -q -o
StrictHostKeyChecking=no root@192.168.102.107 cat /sys/class/net/enp0s3/address
我可以知道为什么 ssh 参数没有生效。我试过用单引号/双引号没有运气。
解决方案
推荐阅读
- jquery - Jquery .attr() 在 onclick 事件期间未读取我的“数据链接”html 值
- r - R - 引用矩阵中的值
- python - 使用部分原始文件名动态命名导入 Python 的 DataFrame
- java - 如何解决:javax.xml.transform.sax.SAXSource 无法转换为 java.io.Serializable [BonitaSoft]
- angular - 窗口打开功能有效但立即关闭新打开的窗口
- jquery - jQuery 在 ASP.NET Core 2.2 Razor 视图中不可用
- javascript - Codility CyclicRotation Javascript 解决方案:空数组返回错误
- c - C中的整数和浮点除法
- django-rest-framework - 如何将 POST 数据与 Django REST Framework 中的现有实例数据合并?
- assembly - 计算 8086 汇编程序的段地址范围