Versuchen Sie Folgendes, damit der Befehl &&
- ||
funktioniert:
printf '%s\n' $ | grep -xq $ && { echo $?; echo Found ;} || { echo $?; echo Not found ;}
Anmerkungen:
Der Testbefehl (
[
) und der Befehlersetzung ($(...)
) werden nicht benötigt.Eine Subtilität des Konstrukts
a && b || c
ist, dassc
es nicht nur ausgeführt wird, wenn eina
Fehler auftritt, sondern auch, wenn einb
Fehler auftritt. Da Sieb
ausecho
Anweisungen bestehen, die normalerweise erfolgreich sein sollten, sollte dies normalerweise kein Problem sein.Weitere Methoden zum Testen der Array-Mitgliedschaft finden Sie unter "Prüfen, ob ein Bash-Array einen Wert enthält" .