0

当我按顺序执行它们时,它可以工作。在我组合它们之后,出现了一个错误。

第一个文件(a.sh)。

# !/bin/bash

/etc/init.d/xl2tpd start | xargs echo
echo "c zju_vpn" > /var/run/xl2tpd/l2tp-control

第二个文件(b.sh)。

#!/bin/bash

sleep 3

VPN_SERVER_IP=10.5.1.7
DEFAULT_GW=10.214.16.1
route add $VPN_SERVER_IP gw $DEFAULT_GW eth0
route del default
route add default ppp0
ping github.com

执行后echo "c zju_vpn" > /var/run/xl2tpd/l2tp-control,ppp0 界面不会立即出现。所以我把它写sleep 3在文件 b.sh 中。

如果我将它们组合成一个(c.sh)。

#!/bin/bash

/etc/init.d/xl2tpd start
echo "c zju_vpn" > /var/run/xl2tpd/l2tp-control 

sleep 3

VPN_SERVER_IP=10.5.1.7
DEFAULT_GW=10.214.16.1
route add $VPN_SERVER_IP gw $DEFAULT_GW eth0
route del default
route add default ppp0
ping github.com

出现错误: SIOCADDRT:没有这样的设备。

当我输入ifconfig. 所以执行route add default ppp0时会失败,这就是原因。但我不知道为什么会这样。

有人帮助我。谢谢。

4

1 回答 1

0

更改sleep 3sleep 10,它再次工作。这个错误是由网络延迟引起的。

于 2015-02-01T08:47:10.750 回答