【发布时间】:2021-05-31 04:31:29
【问题描述】:
我正在尝试在多台机器上运行此命令
sshpass -p 'nico' ssh -o 'StrictHostKeyChecking=no' nico@x.x.x.x "mkdir test"
IP 存储在以下 .txt 文件中
$ cat ips.txt
10.0.2.15
10.0.2.5
我创建了一个 bash 脚本,它逐行读取这个文件。如果我用echo 运行它:
#!/bin/bash
input="ips.txt"
while IFS= read -r line
do
echo "$line"
#sshpass -p 'nico' ssh -o 'StrictHostKeyChecking=no' nico@$line "mkdir test"
done < "$input"
它打印每一行:
$ ./variables.sh
10.0.2.15
10.0.2.5
这让我明白脚本正在按预期工作。但是,当我将 echo 行替换为我想为每一行运行的命令时:
#!/bin/bash
input="ips.txt"
while IFS= read -r line
do
#echo "$line"
sshpass -p 'nico' ssh -o 'StrictHostKeyChecking=no' nico@$line "mkdir test"
done < "$input"
它只对文件的第一个 IP 执行操作,然后停止。为什么?
【问题讨论】: