需要验证变量的长度并在unix中相应地执行操作

时间:2013-12-09 15:40:59

标签: linux unix ksh

我们有一个带有值的变量。我的要求是,如果变量的长度大于0(零),则执行其他操作

Step1:我有一个值为

的变量
    abc="asdfg"

步骤2:确定变量的长度

    xyz=`echo ${#abc}`

步骤3:现在我使用If循环来确定变量的值是否大于0

    if [[$xyz -gt 0]]; then
    echo "success"
    else
    echo "fail"
    fi

我在第3步遇到问题。它没有给我一个成功的消息。需要帮助

4 个答案:

答案 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

这将删除您在那里不必要的命令替换并直接测试长度。如果长度为零则测试失败。