2017-08-15 109 views
0

我想写功能bash脚本,这将使:
占位符在防火墙

  1. 读取从文件中的文本在一个循环

  2. 执行命令

我有一个命令

for BAD_INPUT_IP in `grep -v ^# /etc/rc.d/bad_input.ip`; do 
iptables -I INPUT -s $BAD_INPUT_IP -j DROP 
done 

我要重建这功能:任务

function go_loop(){ 
for BAD_INPUT_IP in `grep -v ^# $1`; do 
     iptables -I INPUT -s $BAD_INPUT_IP -j DROP 
done 
} 

go_loop "/etc/rc.d/bad_input.ip" 

第一部分,我做了。一切都好。但如何让这个命令占位符?

iptables -I INPUT -s $BAD_INPUT_IP -j DROP

我将有很多不同的命令,在这里我需要一个循环。你可以帮我吗 ?谢谢。

回答

0

运行要去功能

function go_loop(){ 
for BAD_INPUT_IP in `grep -v ^# $file`; do 
     iptables -I INPUT -s $BAD_INPUT_IP -j DROP 
done 
} 

file="/etc/rc.d/bad_input.ip" 
go_loop 
+0

对不起之前,设置变量,但我想要做这样的事情: 'go_loop “/etc/rc.d/bad_input.ip”“的iptables -I INPUT -s $ BAD_INPUT_IP -j DROP“' – Piduna

+0

@Piduna,我质疑你为什么要这样做。请更新你的问题来解释。多次调用go_loop而不是将所有命令放入同一个循环是低效的。 –

+0

我将使用不同的命令: 开放端口; 开放访问IP地址; 等。 它不会工作 – Piduna