如何在ksh中检查空字符串

时间:2014-01-22 04:27:45

标签: ksh

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

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

     print "${file}"
fi

3 个答案:

答案 0 :(得分:4)

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

[ -z "${MyVar}" ]

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

答案 1 :(得分:1)

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

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

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

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

这会引发错误并中止当前功能

答案 2 :(得分:1)

if [“$ var”=“”];然后

也有效