OpenWrt Bash shell for循环识别斜杠
OpenWrt Bash shell for loop recognize slash
Bash在OpenWrt中,在/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 命令中正确处理它?
谢谢。
您的问题/24
后有多个特殊字符。查看此命令的输出:
wget -qO - 'http://whosebug.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
、点、斜杠和换行符。
Bash在OpenWrt中,在/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 命令中正确处理它?
谢谢。
您的问题/24
后有多个特殊字符。查看此命令的输出:
wget -qO - 'http://whosebug.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
、点、斜杠和换行符。