【发布时间】:2023-12-05 22:24:01
【问题描述】:
我正在尝试理解一段使用 getopts 的 bash 脚本。
我有
#!/bin/bash
function Argparser () {
while getopts 'o:dfath' arg "$@"; do
case $arg in
'o')
echo "oooooh"
output_dir=${OPTARG}
;;
'd')
echo 'ddddddd'
use_data_calib=true
;;
?)
echo "UNKNWON ARGS: ${OPTARG} "
exit 1
;;
esac
done
}
#----------------------------------------
# user parameters
#----------------------------------------
# data directory(required)
data_root_dir=$1
# output directory
output_dir=${data_root_dir}/videos
declare others=${@:2}
Argparser ${others}
#declare use_data_calib=false #<<-----HERE
echo ${output_dir}
echo ${data_root_dir}
echo ${others}
echo ${use_data_calib}
首先我想了解dfath 的作用,以及使用o:dfath 时期望的参数。
我应该如何调用此脚本以及使用哪些选项?
引起我注意的另一件事是注释行 (HERE) 。我评论了它,现在我可以将use_data_calib 设置为真或假。但是在我正在阅读的原始代码中,该行没有被注释。
那条线不是违背了论点d 的目的吗?因为有了那一行,use_data_calib 总是 错误...
【问题讨论】:
-
请将您的脚本粘贴到shellcheck.net 并尝试实施那里提出的建议。