Was ist die Bedeutung von a ! bevor ein Befehl in der shell?

Die Frage ist im Titel. Was ist der Zweck eines shell-Befehls (Teil der ein shell-Skript), beginnend mit einem Ausrufezeichen? Konkretes Beispiel:

In foo.sh:

#!/usr/bin/env bash
set -e
! docker stop foo
! docker rm -f foo
# ... other stuff

Ich weiß, dass ohne den Raum, das Ausrufezeichen ist für die Geschichte das ersatzstück und die ! <expression> nach der Mann Seite kann verwendet werden, um zu beurteilen "True, wenn expr falsch ist". Aber in den Beispiel-Kontext, die nicht sinnvoll für mich.

  • Wenn der return-code (sichtbar als $?) 0 (Erfolg) es klappt es auf 1, wenn der return-code war ein Fehler (nicht-null) es klappt es auf 0 (null). Vielleicht sind diese Befehle sind zu erwarten zu scheitern und haben Sie -e set oder set -o errexit? Was auch immer, das ist ein Fall, wo Kommentare sollten Hinzugefügt worden sein.
  • set -e Befehle ignoriert, deren exit-Status explizit verneint mit !.
InformationsquelleAutor sthzg | 2017-11-13
Schreibe einen Kommentar