"sh: : unknown operand" in Yocto

Folgende funktioniert bei Ubuntu aber nicht Yocto (Winzig).

root@system:~/# x='abc'
root@system:~/# y=''
root@system:~/# [[ $(echo $x) != '' ]] && echo true
true
root@system:~/# [[ $(echo $y) != '' ]] && echo true
sh: : unknown operand

In Ubuntu die Letzte Zeile gibt nichts zurück (wie erwartet). Irgendwelche Ideen, warum es wirft einen Fehler in Yocto?

  • Ich Wette, dass sh ist nicht das gleiche auf diese beiden Plattformen und, die auf Yocto es ist nicht als vollständig umgesetzt, ich war wirklich überrascht, dass sh umgesetzt [[ an alle, Yocto oder sonst
  • Ubuntu dash-sh, während ein Bild gebaut mit OpenEmbedded oft hat busybox sh.
  • Irgendeine Idee was genau das problem sein kann, obwohl, wenn man bedenkt, es funktioniert in der Yocto für $x?
  • Ich vermute, das problem ist, wie es mit "leeren" args, so lange, wie Sie einen Wert auf jeder Seite des != wird es funktionieren. Sie könnten nur versuchen, unter Angabe der Kommando-Substitutionen wie [[ "$(echo $y)" != '' ]]... und sehen, ob das hilft
  • Das funktioniert, danke Eric. Hinzufügen möchten, wie die Antwort?
InformationsquelleAutor geotheory | 2015-12-13
Schreibe einen Kommentar