以下内容在Ubuntu中可行,但在Yocto (Poky)中不行。
在Ubuntu中,最后一行返回空值(如预期所示)。有任何想法为什么在Yocto中会产生一个错误?
root@system:~/# x='abc'
root@system:~/# y=''
root@system:~/# [[ $(echo $x) != '' ]] && echo true
true
root@system:~/# [[ $(echo $y) != '' ]] && echo true
sh: : unknown operand
在Ubuntu中,最后一行返回空值(如预期所示)。有任何想法为什么在Yocto中会产生一个错误?
sh
不同,在Yocto上可能没有完全实现。我其实很惊讶sh
实现了[[
,无论是在Yocto还是其他平台上。 - Eric Renouf!=
的每一侧都有一个值,它就会起作用。你可以尝试将命令替换引用加上引号,例如[[ "$(echo $y)" != '' ]]...
,看看是否有所帮助。 - Eric Renouf