0

我有名为“国家”和“城市”的参数

运行脚本的常用方法是 Script.ksh "India" "Mumbai".. ..它会运行正常。

但是,我的要求是......我想将此脚本作为 Script.ksh -Country "India" -City "Delhi"运行

任何人请让我摆脱这个

提前致谢...

4

1 回答 1

1

使用示例:

#!/bin/sh

setopt() {
  if [ -n "$1" -a -n "$2" ]; then
    optname=opt_${1#--}
    optval="\"$2\""
    eval $optname="$optval"
    shift
    shift
    setopt "$@"
  fi
}

eval setopt $(getopt -a -l city:,country: -o "" -- "$@")

echo "City is ${opt_city}"
echo "Country is ${opt_country}"

您可以在不使用 getopt 的情况下使用相同的技术,但 getopt 具有标准化名称和识别缩写的额外好处(至少 GNU getopt 可以)。

$ ./opttest -city "New Delhi" -country India
City is New Delhi
Country is India

$ ./opttest -ci "New Delhi" -co India
City is New Delhi
Country is India
于 2012-08-03T23:42:29.133 回答