GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie man eine Gruppe von Befehlen in Bash ausschaltet

Sie können auch die Methode Here Document EOF verwenden, um das mehrzeilige Skript spontan zu erstellen. Der Hauptvorteil davon ist, dass Sie doppelte Anführungszeichen ohne Escapezeichen verwenden können es:

timeout 1s bash <<EOF
    sleep 2s
    echo "something without escaping double quotes"  
EOF

Hinweise:

  1. Der EOF-Abschluss darf nicht auf Leerzeichen/Tabulatoren folgen, sondern am Anfang der letzten Zeile stehen.
  2. Stellen Sie sicher, dass Sie lokale Funktionen mit export -f my_func exportiert haben oder set -o allexport für alle Funktionen (bevor sie deklariert werden). Dies ist relevant für vorherige Antworten seit dem Aufruf von bash/sh wird der Prozess auch in einer neuen Sitzung ausgeführt, ohne sich der lokalen Umgebungsfunktionen bewusst zu sein.

timeout ist kein Shell-Dienstprogramm und führt keine Verarbeitung im Shell-Stil durch. Es muss ein einziger Befehl zur Ausführung gegeben werden. Dieser Befehl kann jedoch eine beliebige Anzahl von Argumenten haben. Glücklicherweise ist einer der Befehle, die Sie ihm geben können, bash :

timeout 1 bash -c '{ sleep 2; echo something; }'

In dieser Form sind die geschweiften Klammern jetzt natürlich überflüssig:

timeout 1 bash -c 'sleep 2; echo something'

Hier bash ist der Befehl, der timeout führt aus. -c und sleep 2; echo something sind Argumente für diesen Befehl.


Linux
  1. Wie debuggt man ein Bash-Skript?

  2. Wie kann ich eine benutzerdefinierte Autovervollständigung für bestimmte Befehle angeben?

  3. So ändern Sie die Anzahl der im Bash-Verlauf gespeicherten Befehle

  4. Bash:Warte mit Timeout

  5. Wie bekomme ich ps zur Druckgruppe?

So kommentieren Sie in Bash

So passen Sie die Bash-Eingabeaufforderung unter Linux an

So fügen Sie einen Benutzer zu einer Gruppe in Linux hinzu

So korrigieren Sie einfach falsch geschriebene Bash-Befehle in Linux

So führen Sie ein Bash-Skript aus

Wie kann man das Timeout in Putty erhöhen?