【发布时间】:2019-04-03 01:28:40
【问题描述】:
如何在以下脚本中使用 bash 和 getopt 将第二个参数解析为变量。
我可以做 sh test.sh -u 并让“userENT”显示。但是如果我在这个脚本上执行 sh test.sh -u testuser 我会得到一个错误。
#!/bin/sh
# Now check for arguments
OPTS=`getopt -o upbdhrstv: --long username,password,docker-build,help,version,\
release,remote-registry,stage,develop,target: -n 'parse-options' -- "$@"`
while true; do
case "$1" in
-u | --username)
case "$2" in
*) API_KEY_ART_USER="$2"; echo "userENT" ;shift ;;
esac ;;
-- ) shift; break ;;
* ) if [ _$1 != "_" ]; then ERROR=true; echo; echo "Invalid option $1"; fi; break ;;
esac
done
echo "user" $API_KEY_ART_USER
我怎样才能通过 -u testuser 而没有无效选项 testuser?
输出:
>sh test3.sh -u testuser
userENT
Invalid option testuser
user testuser
【问题讨论】: