我想创建一个bash脚本,在其中读取IP地址列表并运行以下命令:
smbclient \\\\ $ ip \\ ipc $ -U ". \ User" --pw-nt-hash它退出并尝试另一个IP,不管它是否抛出消息如果连接成功,它不会使用列表中的IP执行,它只尝试使用列表中的第一个IP。
#/bin/bash
IPLIST="ip"
for ip in $(cat ip)
do
smbclient \\\\$ip\\C$ -U ".\user" --pw-nt-hash "user"
exit
done 发布于 2020-10-21 13:50:46
如果您不希望脚本在第一个smbclient之后退出,请删除exit命令。
用户smbclient \$ ip \ ipc $ -U ". \
“--pw-nt-hash,它执行退出操作
这个exit不是由smbclient完成的,而是由脚本完成的;因此它结束了。
发布于 2020-10-21 15:12:52
您似乎假设exit作为输入传递给smbclient,但实际情况并非如此。您运行smbclient,当它完成时,您的脚本继续,并执行exit。有关更全面的讨论,请参阅Pass commands as input to another command (su, ssh, sh, etc)。
还有,don't read lines with for.
#/bin/bash
while read -r ip; do
smbclient \\\\$ip\\C$ -U ".\user" --pw-nt-hash "user" <<<exit
done <iphttps://stackoverflow.com/questions/64454000
复制相似问题