我们有一个带有值的变量。我的要求是,如果变量的长度大于0(零),则执行其他操作
Step1:我有一个值为
的变量 abc="asdfg"
步骤2:确定变量的长度
xyz=`echo ${#abc}`
步骤3:现在我使用If循环来确定变量的值是否大于0
if [[$xyz -gt 0]]; then
echo "success"
else
echo "fail"
fi
我在第3步遇到问题。它没有给我一个成功的消息。需要帮助
答案 0 :(得分:2)
您可以使用-n
检查变量的长度是否为零if [ -n $abc ]; then
echo "success"
fi
答案 1 :(得分:1)
if [[$xyz -gt 0]]; then
应该是:
if [[ $xyz -gt 0 ]]; then
括号和参数之间需要空格。
答案 2 :(得分:1)
你可以这样轻松地做到:
VAR=""
if [ "$VAR" ]; then echo Full; fi
VAR="a"
if [ "$VAR" ]; then echo Full; fi
Full
您在方括号周围缺少一些空格。
答案 3 :(得分:1)
执行此操作的简短快速解决方案是在if-test中直接使用${#var}
:
if (( ${#abc} )); then
# ...
fi
这将删除您在那里不必要的命令替换并直接测试长度。如果长度为零则测试失败。