我有一个接受用户输入的脚本,REFRESH选项是可选的。我需要测试以查看$ REFRESH是否存在并且等于字符串“REFRESH”,如果它接着运行特定的代码块。检查一个变量是否已设置,值是ksh
用户将执行
./export_data.sh <user> <type> [REFRESH]
如果我这样做在PHP中我会简单地使用isset()函数的功能,并在equivelent在ksh中存在吗?
我曾尝试以下,但这未能执行第二次测试$ REFRESH没有设置:
if [ -n $REFRESH ] && [ $REFRESH == "REFRESH" ]
then
echo "variable is set and the expected value";
# do stuff
fi
我能想到这样做的唯一的另一种方式是一个嵌套如果但这似乎凌乱:
if [ -n $REFRESH ]
then
if [ $REFRESH == "REFRESH" ]
then
echo "variable is set and the expected value";
# do stuff
fi
有没有更好的方法来做到这一点?
不应该它是'if [“$ {REFRESH:-unset}”!=“unset”]'? – jlliagre 2012-01-09 17:51:07
不可以。问题:我需要测试$ REFRESH是否存在,并且等于字符串“REFRESH”_。 – 2012-01-09 18:15:21
确实。实际上有两个问题,一个是明确的,而不是你的答复直接解决的问题,另一个问题可能是真正的问题。无论如何,我回答了另一个问题。 – jlliagre 2012-01-10 05:41:39