zw963 / asuswrt-merlin-transparent-proxy

transparent proxy base on ss, v2ray, xray, ipset, iptables, chinadns on asuswrt merlin or side router.
MIT License
380 stars 80 forks source link

sed: unmatched '/' #32

Closed chenshifei closed 7 years ago

chenshifei commented 7 years ago
sed: unmatched '/'
`"local_address": "192.168.1.1",' is replaced with `' for /opt/etc/shadowsocks.json
sed: unmatched '/'
`SS_SERVER_IP' is replaced with `' for /opt/etc/iptables.sh
sed: unmatched '/'
`SS_LOCAL_PORT' is replaced with `' for /opt/etc/iptables.sh
sed: unmatched '/'
`SS_SERVER_IP' is replaced with `' for /opt/etc/iptables_disable.sh
sed: unmatched '/'
`SS_LOCAL_PORT' is replaced with `' for /opt/etc/iptables_disable.sh
sed: unmatched '/'
`UPSTREAM_PORT' is replaced with `' for /opt/etc/dnsmasq.d/foreign_domains.conf
sed: unmatched '/'
`ss-local' is replaced with `' for /opt/etc/init.d/S22shadowsocks

部署 ss+dnsmasq 时候出现上述错误。去路由器上单独执行 sed -i -e "s/$regexp/$replace/" "$file" 这个命令去替换内容反而没有问题,感觉很奇怪

路由器是 AC68 运行 merlin 380.68 固件

zw963 commented 7 years ago

部署的宿主机是 Mac 吗?

chenshifei commented 7 years ago

@zw963 是的。我以为脚本改写之后,部署都是在路由器上运行了就没提

zw963 commented 7 years ago

@chenshifei , Mac 下面各种各样的问题 ...

我都已经无力修复了 .....

chenshifei commented 7 years ago

似乎不是mac的问题

AC68U 在 merlin 380.68 上装的 sed 似乎并不是 gnu 版本

admin@RT-AC68U-7D98:/tmp/mnt/sda1/entware/etc/init.d# sed --version
This is not GNU sed version 4.0

所以deploy_start.shreplace_escape函数的这一行有问题

IFS= read -d '' -r <<< "$(sed -e ':a' -e '$!{N;ba' -e '}' -e 's/[&/\]/\\&/g; s/\n/\\&/g')"

在我的mac上装了gnu-sed之后,这一行是能输出结果的。跑去路由上输出是空。

那么接下来在路由上 opkg install sed,在用/opt/bin/sed替换掉自带的 sed 之后,上面这个replace_escape又出现了新问题:

/opt/bin/sed: -e expression #4, char 16: unterminated `s' command

不晓得这次是什么原因。。。

zw963 commented 7 years ago

稍等几日, 有空了我会把该死的 sed 全部干掉, 换 perl, 一切都清净了。

zw963 commented 7 years ago

@chenshifei , 麻烦把部署脚本中的

self="$(curl -sS https://raw.githubusercontent.com/zw963/deployment_bash/v0.3.6/deploy_start.sh)" && eval "$self"

0.3.6 换为 0.3.7, 试试看, 我本机已经换为 perl 好一阵子了, 使用过程貌似没啥问题.

zw963 commented 7 years ago

这个应该修复了. 已测: Mac 下可工作, 不行的话, 使用 brew 升级你的 bash 版本.

我的是 4.4.12

chenshifei commented 7 years ago

OK,多谢