bash脚本出错

时间:2010-10-17 23:01:51

标签: bash

我创建了一个小脚本来启动openvpn,但是当我尝试执行它时,我收到以下错误消息,我不知道我做错了什么,因为我对这种语言不太好:

/etc/init.d/ovpn start
Options error: Unrecognized option or missing parameter(s) in [CMD-LINE]:1: cd (2.1.0)
Use --help for more information.

这是我的代码:

#!/bin/sh -e

CONFIG_DIR=/etc/openvpn


start_vpn () {
    # load the firewall
    $CONFIG_DIR/firewall.sh

    # load TUN/TAP kernel module
    modprobe tun

    # enable IP forwarding
    echo 1 > /proc/sys/net/ipv4/ip_forward

    openvpn --cd $dir --daemon --config server.conf
}
stop_vpn () {
    killall -TERM openvpn
}

case "$1" in
start)
  start_vpn
  ;;
stop)
  stop_vpn
  ;;
restart)
  stop_vpn
  start_vpn
  ;;
*)
  echo "Usage: $0 {start|stop|restart}" >&2
  exit 1
  ;;
esac

exit 0

# vim:set ai sts=2 sw=2 tw=0:

3 个答案:

答案 0 :(得分:2)

似乎没有初始化

$dir,导致openvpn的--cd选项失败(未指定目录)。

答案 1 :(得分:0)

我没有看到脚本有什么问题。看起来像openvpn程序中的一个错误,它不能识别参数列表中的--cd选项。检查openvpn程序是否支持此选项。

答案 2 :(得分:0)

尝试将您的shebang更改为#!/bin/bash。还试着找出$dir,因为我没有看到它声明