【问题标题】:How to check for empty string in ksh如何检查 ksh 中的空字符串
【发布时间】:2025-12-03 01:05:01
【问题描述】:

我正在编写一个简单的 ksh 脚本。我必须检查一个字符串是否为空。怎么做?这就是我所拥有的:

findRes=`find . -name believe | xargs grep -q "ser"`
if [ "${findRes:-unset}" != "unset" ];then

     print "${file}"
fi

【问题讨论】:

  • 我觉得添加else 应该就足够了,因为您将$findRes 默认值设置为“未设置”——因此不能为空......所以像if [ "${findRes:-unset}" != "unset" ];then print "${}" ; else print "Do something when findRes is blank" ; fi

标签: ksh


【解决方案1】:

如果 [ "$var" = "" ];那么

也可以

【讨论】:

    【解决方案2】:

    使用 test -n 选项,或 ksh/bash [[ ... ]] 等效项:

    string_not_empty() { [[ -n $1 ]]; }
    

    一个更强的变体是使用断言语法进行参数扩展:

    var=${1:?string must not be empty} || return
    

    这将引发错误并中止当前函数

    【讨论】:

      【解决方案3】:

      empty 是一个没有 char 但已定义的字符串,所以在这种情况下

      [ -z "${MyVar}" ]
      

      null 是您的操作失败时的情况,而不是返回空回复时的情况 此外,grep -q 可以在搜索未找到模式时使用 [ $? -ne 0 ] 进行测试

      【讨论】: