在 bash 中针对文件中的项目列表执行命令

在 bash 中针对文件中的项目列表执行命令

我有一个文件,hostname_list其中列出了我使用grep和生成的 1 个或多个服务器的主机名awk。现在我需要salt针对主机名执行命令。作为测试,我正在尝试运行test.pingping 列表中的每个服务器。

我尝试过将其作为 for 循环进行,但无法使其工作。

我尝试过多种变体:

for i in hostname_list
do 
    salt $i test.ping
done

答案1

假设这hostname_list是一个每行包含 1 个主机名的文本文件,您可以使用以下命令:

while read -r line
do
    [[ -n "$line" ]] && salt $line test.ping
done < hostname_list

[[ -n "$line" ]]语句在执行以下命令之前检查该行是否为空。

相关内容