0

我正在尝试为 Mac OSX Mountain Lion (10.8.2) 编写一个 shell 脚本。但是,无论我尝试什么,我都无法让 switch 语句工作。他是脚本的一个非常简化的版本:

#!/bin/bash

while getopts "ei" opt; do
  case $opt in
    e)
      echo "Got option e"
      ;;
    i)
      echo "Got option i"
      ;;
    \?)
      echo "Invalid option: -$opt"
      ;;
  esac
done

无论我尝试什么,我都没有得到任何输出。有任何想法吗?我过去做过这样的脚本。

4

2 回答 2

3

您可能错误地传递了选项,不要忘记-

script.sh -e

请注意,您还应该在无效选项后退出:

\?)
  echo "Invalid option: -$opt"
  exit 1
  ;;
于 2012-11-16T17:09:07.633 回答
0

尝试更换

\?)
  echo "Invalid option: -$opt"
  ;;

和:

*)
  echo "Invalid option: -$opt"
  ;;
于 2012-11-16T17:06:18.433 回答