0
我需要在bash脚本中获得4个选项(每个选项都有一个简短版本)。在bash脚本中Getopt解析错误(选项声明错误)
这里是我做过什么:
OPTS=`getopt -l :author,icon,channel,message: -o :aicm: -- "[email protected]"` ||
exit 1
eval set -- "$OPTS"
while true; do
case "$1" in
-a|--author) echo "A:'$2'"; shift;;
-i|--icon) echo "I:'$2'"; shift 2;;
-m|--message) echo "M:'$2'"; shift 2;;
-c|--channel) echo "C:'$2'"; shift 2;;
--) shift; break;;
*) echo Error; exit 1;;
esac
done
这里是我所得到的:
命令
docker run --rm -e SLACK_TOKEN slacker notify --channel foo
输出
C:'--'
Error
当然,我想有这个输出:
C:'foo'
所以'slacker'是您正在使用其代码的命令,而且上面包括在内?你的代码看起来很模糊,就像你使用'getopts',然后用'while'循环自己重新实现它。 – tripleee
为了澄清,懒鬼是我正在构建的码头图像名称。它包含一个名为notify的bash脚本,我从中提取上面的代码。我应该简化通话部分,以便更专注于我的问题。 – RaDyUm