【笔记】Shell获取命令行参数

前言

Shell获取命令行参数

举例

1
demo.sh -h 127.0.0.1 -p 80

获取Shell程序名

1
echo $0
1
demo.sh

其他参数

1
2
echo $1
echo $2
1
2
-h
127.0.0.1

获取所有参数总数

1
echo $#
1
4

根据标识符获取参数

shift

1
2
3
4
5
6
7
8
9
10
11
12
while [ $# -gt 0 ];
do
case $1 in
-h) echo $2
shift
;;
-p) echo $2
shift
;;
esac
shift
done
1
2
127.0.0.1
80

getopts

1
2
3
4
5
6
7
8
9
10
11
while getopts a:b:c: opt;
do
case $opt in
h) echo $OPTARG
;;
p) echo $OPTARG
;;
?) echo "没有这个参数"
;;
esac
done

完成

参考文献

博客园——zk47