gpt4 book ai didi

bash - 循环不循环

转载 作者:行者123 更新时间:2023-12-02 14:35:54 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





ssh breaks out of while-loop in bash [duplicate]

(2 个回答)


7年前关闭。




我正在使用以下脚本循环浏览服务器列表,然后输出可用磁盘空间信息。 SSH key 已经到位并且可以正常工作。

但它只输出第一个服务器名称,然后存在......我很难过。

#!/bin/bash

PATH=/bin:/usr/bin:/usr/sbin
export PATH

while IFS='|' read hostname nickname; do
echo "$hostname: $nickname"
ssh $hostname "df -Pkhl"

done < server-list.dat

和 list :
% cat server-list.dat
serverone|ONE
servertwo|TWO
serverthree|THREE

最佳答案

发生这种情况是因为您将标准输入附加到 server-list.dat , 但是 ssh也期望从标准输入读取。

要解决此问题,您可以使用不同的描述符打开文件:

while IFS='|' read -u 3 hostname nickname; do
echo "$hostname: $nickname"
ssh $hostname "df -Pkhl"

done 3< server-list.dat

使用 -u 33<打开 server-list.dat作为文件描述符 3。

关于bash - 循环不循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29502556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com