【发布时间】:2014-02-13 17:58:11
【问题描述】:
我想通过两组检查来推送我的输入参数。这些检查中的每一个都是一个函数。所以 case 不起作用,因为在 KSH.Case 中,在满足第一个条件后会“esac”。
die () {
echo "ERROR: $*. Aborting." >&2
exit 1
}
var=$1
var1=$2
[ -z "$var1" ] && var1=$var
echo "var is $var . Var1 is $var1 "
# test $var1 != $var2 ||
dtc() {
# small function where I am checking if the input parameter is a valid date
}
vlc(){
# function where I am checking if the input parameters year is after 2012, because earlier years cannot exist
}
if dtc $var && dtc $var1
then
if vlc $var && vlc $var1
then
stuff
else
die "message"
fi
else
die "message"
fi
嵌套的 if 看起来有点笨拙。如果有更优雅的方式将其传达给 shell。
【问题讨论】:
标签: shell if-statement conditional case logical-operators