OpenWrt中的Bash,在/etc
下我有一个文件foreign.txt,内容如下:
1.0.0.0/24
当我使用for i in ``cat /etc/foreign.txt``; do ipset add redir $i;done
时,/被视为',显示'24 numerror。
但是当我尝试for i in ``cat /etc/foreign.txt``; do echo $i;done
时,它会显示正确的/.
shell如何在ipset命令中正确处理它?</ p>
感谢。
答案 0 :(得分:0)
问题中/24
后面有多个特殊字符。请参阅此命令的输出:
wget -qO - 'http://stackoverflow.com/revisions/36fdcac2-c6a6-4dd8-aad4-75af2d16827e/view-source' | cat -v
我建议使用:
tr -cd '0-9./\n' </etc/foreign.txt | while read -r i; do echo ipset add redir "$i"; done
如果一切正常,请删除echo
。
此tr
命令会删除/etc/foreign.txt中的所有字符,但会删除0
到9
,点,斜线和换行符。