使用getopts“b:”和''。/ script -b foo'清空$ OPTARG

时间:2014-02-26 18:47:06

标签: bash shell sh

我正在尝试创建一个接受命令行参数的bash文件,但是我的OPTARG没有产生任何结果,看来这是必要的才能让它工作?

这就是我所拥有的:

#!/bin/bash

while getopts ":b" opt; do
  case $opt in
    b)  
        echo "result is: $OPTARG";;
    \?) 
        echo "Invalid option: -$OPTARG" >&2;;  
  esac
done

当我使用file.sh -b TEST运行时,这是我得到的结果:result is:

这里有什么想法?

1 个答案:

答案 0 :(得分:9)

您在b之后错过了冒号(b之前不需要)。

使用此脚本:

#!/bin/bash

while getopts "b:" opt; do
  case $opt in
    b)  
        echo "result is: $OPTARG";;
    *) 
        echo "Invalid option: -$OPTARG" >&2;;  
  esac
done