如何从文件Bash中调用hostlist的变量



我想知道如何在bash中调用变量。

我有一个名为/home/user/linux_hosts的文件,其中我有主机名,比如:

host001
host002
host003
host004

下面是我正在跑步的内容。

#!/bin/bash
ping_hostList="$(< /home/user/linux_hosts)"

for line in ${ping_hostList}
do
pingHost -c2 "${line}" 
done

因此,在上面的脚本中,我声明了一个变量ping_hostList,它有一个包含主机名的文件。正如您所看到的,我使用<符号从文件中获取主机名,然后在脚本中调用该变量,这是有效的,但我正在寻找从bash脚本中的文件中调用主机名的最佳方法。

任何把戏和纯粹的狂欢都会得到高度评价。

我知道这可能很简单:

#!/bin/bash

for line in $(cat /home/user/linux_hosts)
do
pingHost -c2 "${line}" 
done

使用带有read内建的while循环通常是这里的规范方式:

while read -r host; do
pingHost -c2 "$host";
done < linux_hosts

如果要禁用字段拆分,请将IFS设置为空值:while IFS= read -r host

或者您可能更喜欢xargs:

< linux_hosts xargs -L1 pingHost -c2

最新更新