null check会抛出一元运算符错误

时间:2013-09-27 02:10:01

标签: bash

我想要检查变量是否为null,它会抛出以下错误。我已经尝试了以下组合,但它说同样的错误。我想找出文件夹中的文件

cmd="ls -tm"
output=$($cmd)

echo $output // doesn't print out anything as the folder is empty

if [  $output != "" ];

对于下面的一个,它进入循环

if[ -z $output ];

错误输出:

line 25: [: !=: unary operator expected

有关处理此事的任何建议吗?

2 个答案:

答案 0 :(得分:2)

您是否尝试过使用if [ "$output" != "" ];代替if [ $output != "" ];

答案 1 :(得分:1)

要扩展@Quine的建议,如果$ output为null,则if语句扩展为

if [ != "" ];

这使得bash认为缺少一个参数。引用参数名称可以克服这一点。