shell 从文件获取数据并赋值给变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 从文件获取数据并赋值给变量相关的知识,希望对你有一定的参考价值。

需求:从某文件中读取ip地址以及端口号,用iptables打开该ip以及端口

比如文件内容:

[[email protected] huwei]# cat ip.txt
192.168.66.20 22
192.168.66.30 10050
192.168.66.30 33

手动操作为:

[[email protected] huwei]# iptables -A INPUT -s 192.168.66.20  -i eth0 -p tcp --dport 22 -j ACCEPT

改写使用脚本读取文件内容,自动添加iptables防火墙规则,脚本为:

[[email protected] huwei]# cat ip.sh
#!/bin/sh
wan0=‘eth0‘
FILE=‘/home/huwei/ip.txt‘
while read i
do
a=$(echo "$i"|awk -F ‘ ‘ ‘{print $1}‘)
b=$(echo "$i"|awk -F ‘ ‘ ‘{print $2}‘)
#此处显示变量的值,其实可以省略
echo "$a"
echo "$b"
iptables -A INPUT -s $a  -i $wan0 -p tcp --dport $b -j ACCEPT
/etc/init.d/iptables save
done<$FILE

土办法,我觉得应该还有更好的办法可以实现这样的功能 

本文出自 “海底两万里” 博客,请务必保留此出处http://huwei555.blog.51cto.com/1347480/1787463

以上是关于shell 从文件获取数据并赋值给变量的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本怎样读取文件的值,并赋值给变量

在Shell脚本中,读取键盘输入的内容并将其赋值给Shell变量的命令是啥?

shell中分别给null和unset的变量赋值问题

ES6解构赋值

BAT/CMD中将命令执行结果赋值给变量

如何用SQL代码将动态查询结果赋值给变量?