【发布时间】:2012-08-01 07:29:12
【问题描述】:
我有一个使用getopts 的shell 脚本testShell.sh,如下所示:
#!/bin/bash
while getopts ":j:e:" option; do
case "$option" in
j) MYHOSTNAME=$OPTARG ;;
e) SCRIPT_PATH=$OPTARG ;;
*) ;;
esac
done
echo "j=$MYHOSTNAME"
echo "e=$SCRIPT_PATH"
shift $((OPTIND - 1))
echo "remaining=$@"
当我像下面这样测试运行它时:
$ testShell.sh -jvalue1 -evalue4 -Djvalue3 -pvalue2
我得到的输出如下:
j=value3
e=2
remaining=
但我希望输出为:
j=value1
e=value4
remaining=-Djvalue3 -pvalue2
是否可以确保 getopts 只查看第一个字符帖子 - 符号? 这样它就不会'将-Djvalue3 解释为-jvalue3,将-pvalue2 解释为-e2。
【问题讨论】:
-
请不要多发:也在superuser 和unix&linux 上问过
-
我会确保不再这样做。但我非常需要这个,绝望地这样做了。
标签: bash shell parameters getopt