【发布时间】:2023-03-10 07:05:02
【问题描述】:
在以下脚本块中,我尝试对从文件中读取的每个 fqdn 执行 nslookup。但是,脚本在执行第一个 nslookup 命令后停止。代码:
for HOST in `cat ./rhel_hosts`
do
echo;
echo "EXECUTING ==> nslookup ${HOST}"
CMD="nslookup ${HOST}"
exec $CMD
done
知道为什么没有后续执行 nslookup 命令吗?
【问题讨论】:
-
exec停止你的 shell 运行。 -
顺便说一句,请注意全大写变量在保留空间中。为您自己定义的变量使用小写名称将防止您意外覆盖对 shell 有意义的内容。
-
请参阅BashFAQ #1 re:在 bash 中逐行迭代文件的最佳实践。使用它,这看起来更像
while IFS= read -r line; do printf '%s\n' '' "EXECUTING ==> nslookup $line"; nslookup "$line"; done <./rhel_hosts -
为什么首先需要将命令放入变量中?
标签: linux bash for-loop nslookup