请帮忙看看这段 ipsec 拔号脚本在 OpenWrt 里执行出错的问题在哪里?非常感谢!

2014-10-01 03:26:46 +08:00
 realsteve
路由是 WNDR4300 ,固件是 @nanpuyue 提供的: http://v2ex.com/t/131984#reply23
固件版本:OpenWrt Chaos Calmer r42229 / LuCI Trunk (svn-r10520)
内核版本:3.10.49
安装了 ipsec-tools 和 xl2tpd 软件包。

脚本原是用于 Fedora Linux 8 ,配合所图所示软件包



以「 sh /etc/connect.sh 」方式运行,提示:/etc/connect.sh: line 48: syntax error: unexpected end of file (expecting "then")
直接「./connect.sh 」,则提示:-ash: ./connect.sh: not found

脚本在此:
https://gist.github.com/anonymous/8da09bc9166e2781c115
1658 次点击
所在节点    OpenWrt
7 条回复
AntonChen
2014-10-01 11:00:21 +08:00
#!/bin/bash 肯定是一个问题

不怎么清楚ash和bash脚本有什么区别 不过OpenWrt下有sh

可以试试改为#!/bin/sh
csx163
2014-10-01 12:51:34 +08:00
再检查下换行符
realsteve
2014-10-01 15:24:52 +08:00
感谢 @AntonChen @csx163 的解答。

我改了 #!/bin/sh,去掉 22 行尾一个多余的空格,将所有行尾的 ^M 字符去除,再次运行,得到这样的提示:

sh: bad number
Please use root account or sudo in order to connect

再请求指点。
AntonChen
2014-10-03 23:16:19 +08:00
ROOT_UID=0
if [ "$UID" -eq "$ROOT_UID" ]
then
echo "User has root privileges, will continue..."
else
echo "Please use root account or sudo in order to connect"
exit 1
fi
AntonChen
2014-10-03 23:17:36 +08:00
啊 西八 按错键了

我发的那部分是判断语句 判断是否为root账户 试着去掉这些运行试试
realsteve
2014-10-09 01:06:48 +08:00
感谢 @AntonChen 的回复。现在有个新的问题:OpenWrt 用的是 udhcpc,而脚本中要用到 dhclient,这种情况下脚本要如何修改?
AntonChen
2014-10-10 16:18:41 +08:00
@realsteve dhclient是用来重新获取IP的么如果是可以 udhcpc -i 网卡

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/136630

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX