下面是脚本。当我用命令运行这个时
./scriptname --deploy --uglify"
Run Code Online (Sandbox Code Playgroud)
我得到了echo "$deploy"
as的结果true
。但应该是uglify
正确的,因为deploy=$2
#!/bin/bash
deploy=true
uglify=true
while (( $# > 1 )); do
case $1 in
--deploy) deploy="$2" echo "$deploy";;
--uglify) uglify="$2";;
*) break;
esac; shift 2
done
Run Code Online (Sandbox Code Playgroud)
你的意思是这样的:
#!/bin/bash
deploy=false
uglify=false
while (( $# >= 1 )); do
case $1 in
--deploy) deploy=true;;
--uglify) uglify=true;;
*) break;
esac;
shift
done
echo "deploy: $deploy"
echo "uglify: $uglify"
Run Code Online (Sandbox Code Playgroud)
例子
$ ./scriptname
deploy: false
uglify: false
$ ./scriptname --deploy
deploy: true
uglify: false
$ ./scriptname --uglily
deploy: false
uglify: true
$ ./scriptname --depoly --uglily
deploy: true
uglify: true
Run Code Online (Sandbox Code Playgroud)