dot*_*dot 4 bash getopts variable
问题
我有一个接受几个不同(可选)命令行参数的脚本。对于一个特定的论点,我得到了“less”的值,但我不知道为什么。
重击代码
while getopts ":d:f:p:e:" o; do
case "${o}" in
d)
SDOMAIN=${OPTARG}
;;
f)
FROM=${OPTARG}
;;
p)
PAGER=${OPTARG}
;;
e)
DESTEXT=${OPTARG}
;;
*)
show_usage
;;
esac
done
source "./utils.sh"
test #test includes
echo "$SDOMAIN is the sdomain"
echo "$FROM is the from"
echo "$PAGER is the pager"
echo "$DESTEXT is the extension"
exit
Run Code Online (Sandbox Code Playgroud)
输出
当我运行我的脚本时,这是我看到的:
lab-1:/tmp/jj# bash mssp.sh -d testdomain.net
Utils include worked!
testdomain.net is the sdomain
is the from
less is the pager
is the extension
Run Code Online (Sandbox Code Playgroud)
我不明白为什么我在寻呼机中得到“更少”的价值。我希望看到空字符串。如果你能看到我的错误,请告诉我。我已经看这个太久了。
Jef*_*ler 10
您的脚本从不设置 PAGER,但该变量可能是从您当前的环境中导出的;与declare -p PAGER
.
我建议在脚本中使用不同的变量名;这就是为什么一般建议不要使用大写变量作为您自己的变量。