我有一个shell脚本,我正在解析命令行参数。我的论点有其中的道路。
示例:mycript.sh -c test -s global -n /mydir/test1 -d /orgdir/test35
当我运行脚本并回显包含路径(特殊字符“/”)的参数时,它给了我空路径。
#/!bin/bash
...
while getopts c:hs:n:d opt
do
case "$opt" in
c) INST=$OPTARG;;
d) INST_DIR=$OPTARG;;
h) usage;;
s) METHOD=$OPTARG;;
n) MAINTENANCE_DIR=$OPTARG;;
\?) usage;;
esac
done
echo INST dir is [$INST_DIR]
echo MAINTENANCE dir is [$MAINTENANCE_DIR]
.......
此回音的结果是
INST dir is []
MAINTENANCE dir is []
有人能说出这里有什么不对吗?
答案 0 :(得分:2)
使用您的脚本,我得到了不同的结果:
INST dir is []
MAINTENANCE dir is [/mydir/test1]
我改变了你的剧本第4行:
while getopts c:h:s:n:d: opt
在Cygwin下,它适用于我,bash
版本4.1.10(4) - 发布。