OS X Bash脚本不起作用,但各个命令都可以

时间:2018-01-05 01:59:16

标签: bash macos shell networking vpn

我试图将this page上关于连接到OS X上的软Ether VPN的指令转换为bash脚本,但我遇到了一些问题。

当我在命令行单独运行这些命令时,我能够很好地启动与VPN的连接并正确设置路由,但是当我将它放入脚本时,它并没有&# 39;工作。

以下是相关脚本:

#!/bin/bash
GATEWAY=`route -n get default | grep gateway | awk '{print $2}'`
VPN_IP=130.158.6.123/32
VPN_GATEWAY=192.168.0.1

vpnclient start
vpncmd localhost /CLIENT /CMD AccountConnect HomeVPN;
ipconfig set tap0 DHCP;
ifconfig tap0 down; ifconfig tap0 up

echo "waiting for dhcp to get us an address..."
sleep 15

route delete default;
route -n add $VPN_IP $GATEWAY;
route add default $VPN_GATEWAY;

经过测试,我确认GATEWAY获得了正确的值,并且所有其他变量都已正确设置。该脚本似乎正确地执行所有操作,直到它开始更改路径的部分。起初我以为是因为接口没有足够的时间来获取IP地址,所以我花了很长的等待时间来确保它在开始尝试更改路由之前有一个IP。

关于为什么在放入脚本表单时这不起作用的任何想法?

1 个答案:

答案 0 :(得分:0)

只是猜测:sudo在shell脚本中不能很好地工作,因为它是一个交互式工具,需要提示输入密码。您可以考虑删除sudo命令并使用sudo运行整个脚本。