重击案声明 [英] Bash case statement
本文介绍了重击案声明的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图学习案例,就像编写一个功能齐全的脚本一样.
I'm trying to learn case as I was to write a fully functional script.
我从下面开始
#!/bin/sh
case $@ in
-h|--help)
echo "You have selected Help"
;;
-B|-b)
echo "You have selected B"
;;
-C|-c)
echo "You have selected C"
;;
*)
echo "Valid Choices are A,B,C"
exit 1
;;
esac
我想使用以下两个选项:
I want to use two of these options:
./getopts.sh -h -c
但是我得到这个结果 有效选择是A,B,C
But i get this result Valid Choices are A,B,C
请您帮忙,让我知道我做错了吗?
Please can you help out and let me know what I'm doing wrong?
我想构建一个脚本,如果您输入一个选项,它将执行某些操作,如果您输入多个选项,则将执行多个操作.
I want to build a script that will do something if you enter one option but do multiple things if you enter multiple.
我还将如何将$ 1解析为该脚本,因为surley我输入的第一个选项(-h)将是$ 1?
Also how would i parse $1 to this script as surley which ever option i enter first (-h) will be $1 ??
谢谢!
推荐答案
尝试一下
#!/bin/sh
usage() {
echo `basename $0`: ERROR: $* 1>&2
echo usage: `basename $0` '[-a] [-b] [-c]
[file ...]' 1>&2
exit 1
}
while :
do
case "$1" in
-a|-A) echo you picked A;;
-b|-B) echo you picked B;;
-c|-C) echo you picked C;;
-*) usage "bad argument $1";;
*) break;;
esac
shift
done
这篇关于重击案声明的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文