输入多个变量的Bash脚本
我使用一个简单的shell脚本来阻止IP地址,它只是用我的输入(IP)替换iptables、IPFW等命令中的变量(取决于所使用的平台),但它们基本上都遵循以下格式:输入多个变量的Bash脚本,bash,shell,unix,scripting,Bash,Shell,Unix,Scripting,我使用一个简单的shell脚本来阻止IP地址,它只是用我的输入(IP)替换iptables、IPFW等命令中的变量(取决于所使用的平台),但它们基本上都遵循以下格式: read -p "IP to Block: " ip ipfw add deny ip from $ip to any 是否可以简单地按顺序执行一组用户定义的变量。例如,三个IP地址,并让脚本对每个变量执行三次,但将我的输入限制为一个提示(被要求输入一次)?听起来您想这样做: for ip in $@; do ipfw
read -p "IP to Block: " ip
ipfw add deny ip from $ip to any
是否可以简单地按顺序执行一组用户定义的变量。例如,三个IP地址,并让脚本对每个变量执行三次,但将我的输入限制为一个提示(被要求输入一次)?听起来您想这样做:
for ip in $@; do
ipfw add deny ip from $ip to any
done
我不确定这是否是ipfw
的确切用法,但$@
是命令中除第一个单词外的每个单词,因此它可以用于:
your-script-name 1.2.3.4 1.3.4.5 1.4.5.6
太好了,谢谢。对于IPFW,只要每个变量打印为每个命令实例的单个IP地址,那么这就足以满足脚本要覆盖的防火墙管理级别。您也可以在脚本
read-p“IPs to Block(用空格分隔):”中使用它与带提示的读取一起使用ip
,然后以$ips表示ip的;改为…
。然后在没有参数的情况下运行它。