我有一個要求,應該解決以下幾點。Shell腳本 - 雖然循環/文件讀取不工作
- 我有一個包含IP地址列表的文件,我想逐行閱讀。
對於每個IP,我需要使用SSH來推動下面的命令(全部爲設備的MikroTik)
/radius add service=login address=172.16.0.1 secret=aaaa /user aaa set use-radius=yes
以下是我的代碼。
#!/bin/bash
filename="branch"
while IFS= read line; do
echo ${line//}
line1=${line//}
ok='@'
line3=$ok$line1
sshpass -p abc123 ssh -o StrictHostKeyChecking=no admin$line3/radius add service=login address=172.16.0.1 secret=aaaa
sleep 3
sshpass -p abc123 ssh -o StrictHostKeyChecking=no admin$line3/user aaa set use-radius=yes
sleep 3
echo $line3
echo $line
done <"$filename"
分公司文本文件:
192.168.100.1
192.168.101.2
192.168.200.1
問題:什麼都我做的變化,而循環只運行一次。
故障排除/觀察: 如果我運行While循環來讀取文件「分支」,沒有SSH命令它工作正常。
不要使用'sshpass'!首選理解*''公鑰認證''* doe的工作方式! (注意:'sshpass'可能是你奇怪問題的原因) –
當你顯示輸入文件時是否有空行? – cdarke