getopts使用特殊字符作为参数

时间:2015-12-29 14:37:28

标签: bash shell unix

我想知道我是否可以用getopts接受特殊字符作为参数的方式编写我的脚本。

这就是我所拥有的:

File=0;

while getopts "<:" opt; do
  case "$opt" in
    <) File=$(echo $OPTARG)
      ;;
    \?) echo "Syntax error"
        exit 1
      ;;
  esac
done
shift $((OPTIND - 1))

问题是这给了我以下错误:

unix getotps error

任何人都可以帮我解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:1)

如果你引用它(在脚本和命令行中)它将起作用:

while getopts "<:" opt; do
  case "$opt" in
    "<") File=$(echo $OPTARG)
      ;;
    \?) echo "Syntax error"
        exit 1
      ;;
  esac
done
shift $((OPTIND - 1))

像这样调用脚本:

$ ./test.sh "-<" test