我的文件.txt:
# hex-strings
160301
160423
我的变量:
abc=`sed '/^$/d; /#/d' file.txt`
并回显“$abc”
160301
160423
完美,但在我的 iptables bash 脚本中不起作用:
#!/bin/bash
iptables -A FORWARD -p tcp -m string --hex-string "|$abc|" --algo bm -j DROP
iptables v1.6.1: Invalid hex char '
我该如何修复变量以便它在 iptables 中运行良好?
PD:如果我应用以下规则,它就可以正常工作:
for string in `sed '/^$/d; /#/d' file.txt`; do
iptables -A FORWARD -p tcp -m string --hex-string "|$string|" --algo bm -j DROP
done
但它不适用于其他规则。示例(包含 2 个文件,其中字符串为“abc”和“def”)
iptables -N mychain
iptables -A FORWARD -p tcp -m string --hex-string "|$abc|" --algo bm -j mychain
iptables -A mychain -p tcp -m string --hex-string "|$def|" --algo bm -j DROP
这就是为什么我需要变量