如何添加 debug/set -x is bash 脚本作为 getopts 的选项
How to add debug/set -x is bash script as option for getopts
我想在 bash 脚本中将调试工具作为用户输入传递。让我们以下面的代码作为示例脚本。
#!/bin/bash
usage() { echo "Usage: [=12=] [-d <Integer>] [-m <String>]" 1>&2; exit 1; }
while getopts "hld:p:" o; do
case "${o}" in
d)
d=${OPTARG}
[[ $d =~ ^[0-9]+$ ]] || usage
;;
p)
p=${OPTARG}
[[ $p =~ [a-zA-Z] ]] || usage
;;
l) # to enable logging/debug -- set -x
l=${OPTARG}
;;
h|*)
usage
;;
esac
done
shift $((OPTIND-1))
if [ -z "${d}" ] || [ -z "${m}" ]; then
usage
fi
echo "d = ${d}"
echo "m = ${m}"
如何添加到这里?
getops 参数、帮助消息和 case 语句不一致:
- getops 参数
d:h:p:
,指定选项 -d
-h
和 -p
(另外 h:
意味着 -h
需要一个参数)
- 帮助消息,文档选项
-d
和 -m
- case 语句,处理选项
-d
-p
-l
和 -h
..
在 getopts 参数中添加 l
并在使用 h
后删除 :
while getopts "d:hlp:" o; do
case "${o}" in
...
l) set -x
;;
...
esac
done
我想在 bash 脚本中将调试工具作为用户输入传递。让我们以下面的代码作为示例脚本。
#!/bin/bash
usage() { echo "Usage: [=12=] [-d <Integer>] [-m <String>]" 1>&2; exit 1; }
while getopts "hld:p:" o; do
case "${o}" in
d)
d=${OPTARG}
[[ $d =~ ^[0-9]+$ ]] || usage
;;
p)
p=${OPTARG}
[[ $p =~ [a-zA-Z] ]] || usage
;;
l) # to enable logging/debug -- set -x
l=${OPTARG}
;;
h|*)
usage
;;
esac
done
shift $((OPTIND-1))
if [ -z "${d}" ] || [ -z "${m}" ]; then
usage
fi
echo "d = ${d}"
echo "m = ${m}"
如何添加到这里?
getops 参数、帮助消息和 case 语句不一致:
- getops 参数
d:h:p:
,指定选项-d
-h
和-p
(另外h:
意味着-h
需要一个参数) - 帮助消息,文档选项
-d
和-m
- case 语句,处理选项
-d
-p
-l
和-h
..
在 getopts 参数中添加 l
并在使用 h
:
while getopts "d:hlp:" o; do
case "${o}" in
...
l) set -x
;;
...
esac
done