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

简介:

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

比如文件内容:

1
2
3
4
[root@localhost xxx] # cat ip.txt
192.168.1.20 22
192.168.1.30 10
192.168.1.30 33

手动操作为:

1
[root@localhost huwei] # iptables -A INPUT -s 192.168.66.20  -i eth0 -p tcp --dport 22 -j ACCEPT

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@localhost xxx] # 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

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



本文转自 yawei555 51CTO博客,原文链接:http://blog.51cto.com/huwei555/1787463,如需转载请自行联系原作者

相关文章
|
Shell
Shell 文件包含
10月更文挑战第5天
216 4
|
8月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
801 2
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
430 6
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
缓存 监控 Shell
如何使用 HBase Shell 进行数据的实时监控和备份?
如何使用 HBase Shell 进行数据的实时监控和备份?
420 5
|
Shell 分布式数据库 Hbase
如何使用 HBase Shell 进行数据的批量导入和导出?
如何使用 HBase Shell 进行数据的批量导入和导出?
1318 5
|
存储 Java Shell
Shell 变量
10月更文挑战第2天
245 1
shell脚本变量 $name ${name}啥区别
shell脚本变量 $name ${name}啥区别
|
Java Shell Linux
Shell 变量设置
Shell设置变量
281 5
|
Java Shell Linux
Shell 变量设置25-1
Shell编程语言是一种非类型的解释型语言,无需像C++/Java那样事先声明变量。通过赋值即可定义变量,在Linux支持的所有Shell中均适用。变量分为局部变量与环境变量,前者仅限于定义脚本内使用,后者可在其派生的子进程中使用。常见系统变量如$0表示当前程序名称,$n表示第n个参数(n=1,2,...,9),$*代表所有参数,$#代表参数个数,$?表示命令执行后的状态(0为成功),$UID为当前用户ID,$PWD表示当前目录。定义变量如`A=123`,
175 0
|
Shell Linux 开发工具
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?