有两个目录包含这些文件:
第一个/usr/local/nagios/etc/hosts
[root@localhost hosts]$ ll
total 12
-rw-rw-r-- 1 apache nagios 1236 Feb 7 10:10 10.80.12.53.cfg
-rw-rw-r-- 1 apache nagios 1064 Feb 27 22:47 10.80.12.62.cfg
-rw-rw-r-- 1 apache nagios 1063 Feb 22 12:02 localhost.cfg
还有第二个/usr/local/nagios/etc/services
[root@localhost services]$ ll
total 20
-rw-rw-r-- 1 apache nagios 2183 Feb 27 22:48 10.80.12.62.cfg
-rw-rw-r-- 1 apache nagios 1339 Feb 13 10:47 Check usage _etc.cfg
-rw-rw-r-- 1 apache nagios 7874 Feb 22 11:59 localhost.cfg
我有一个脚本,它遍历 Hosts 目录中的文件,并将该文件中的一些行粘贴到 Services 目录中的文件中。
脚本是这样运行的:
./nagios-contacts.sh/usr/local/nagios/etc/hosts/10.80.12.62.cfg/usr/local/nagios/etc/services/10.80.12.62.cfg
我怎样才能实现另一个脚本调用我的脚本并遍历 Hosts 目录中的每个文件,并为 Service 目录中具有相同名称的文件完成它的工作?
在我的脚本中,我从主机目录中的 10.80.12.62.cfg 中提取联系人并将它们附加到服务目录中具有相同名称的文件中。
最佳答案
不要使用 ls
输出作为 for 循环
的输入,而是使用内置的通配符。参见 why这不是一个好主意。
for f in /usr/local/nagios/etc/hosts/*.cfg
do
basef=$(basename "$f")
./nagios-contacts.sh "$f" "/usr/local/nagios/etc/services/${basef}"
done
关于linux - 调用另一个脚本以在目录中的每个文件上执行的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49036675/