[:-le:一元运算符预期

时间:2016-11-15 18:26:24

标签: bash shell terminal

我正在编写一个简单的代码,用于输出以00开头的目录中的子目录数。这是我的代码:

#!/bin/bash

maxout=2

function getnumber {
    number=`ls | grep 00 | wc -l`
    return $number
}

qs=`getnumber`
echo $qs
if [ $qs -le $maxout ]
    then
        echo 'Youpiiii !!!'
else
    echo 'Sleeping for 60 sec'
fi

但是我收到以下错误 [: -le: unary operator expected

当我trace我的代码时,该功能正在运行。我有

++ return 5

但是

+ qs=

我做错了什么?

1 个答案:

答案 0 :(得分:4)

`...`表示法会捕获... 打印的内容,而不是返回的内容。 (return主要用于表示成功与失败。)

所以,改变一下:

number=`ls | grep 00 | wc -l`
return $number

到此:

number=`ls | grep 00 | wc -l`
echo $number

或只是:

ls | grep 00 | wc -l