我正在写一个简单的ksh脚本。我必须检查字符串是否为空。怎么办?这就是我所拥有的:
findRes=`find . -name believe | xargs grep -q "ser"`
if [ "${findRes:-unset}" != "unset" ];then
print "${file}"
fi
答案 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”=“”];然后
也有效