Bash 脚本 getopts为什么最后一个參数取不到

看以下的Bash脚本:

#!/bin/bash
interval=0
count=0
pid=""
while getopts "p:d:n" arg
do
case $arg in
p)
pid=$OPTARG
echo "pid: $pid"
;;
d)
interval=$OPTARG
echo "interval:$interval"
;;
n)
count=$OPTARG
echo "count:$count"
;;
\?)
echo "unkonw argument"
exit 1
;;
esac
done

发现最后一个參数n总是获取不到,为什么呢?

原来,n后面少了一个冒号。參数都要要带上一个冒号。包含在最末尾的參数。

正确的写法:

while getopts "p:d:n:" arg
上一篇:机器学习笔记4-Tensorflow线性模型示例及TensorBoard的使用


下一篇:C++学习笔记(一)——一个字符串分割和统计的工具(TextUtils)