【发布时间】:2017-02-13 11:43:13
【问题描述】:
我有一个函数可以让我检查未设置的变量:
ValidateArgs () {
for Var in "$@" ; do
echo "Validating argument $Var with value \"${!Var}\"."
if [ -z "${!Var}" ] ; then
echo "Argument \"$Var\" is required. Please define $Var."
read -rp "Enter $Var: " Var
echo -e "\n"
fi
done
}
我想增强此功能,以便它能够为使用read -rp 读取后传递的参数设置一个值。
我尝试了几种组合,是否可以这样做?如果可以,最好的方法是什么?
函数是这样调用的:
ValidateArgs Action HostName
如果在通过 ValidateArgs 函数后未设置 Action 和 HostName ,则会询问并应设置一个值。我更喜欢在主脚本中使用该函数。
【问题讨论】:
-
从技术上讲,您不是在检查未设置的变量;您正在检查缺少非空值的变量。阅读
-v运算符和${var:?msg}参数扩展。
标签: bash function validation arguments