在UNIX Shell脚本中传递自定义参数

时间:2012-08-01 21:13:58

标签: unix

我有名为“Country”和“City”的参数

运行脚本的常用方法是 Script.ksh“印度”“孟买”.. ..会运行正常。

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

Culd任何人请让我离开这个

提前致谢...

1 个答案:

答案 0 :(得分: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