我想知道如何在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