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

Linux-Bash-Skript, einzelner Befehl, aber mehrere Zeilen?

Alles, was Sie tun müssen, ist "\" am Ende jeder Zeile hinzuzufügen, und es sollte gut gehen.

Ihre sieht also so aus:

tar -cvpzf /share/Recovery/Snapshots/$(hostname)_$(date +%Y%m%d).tar.gz \
    --exclude=/proc \
    --exclude=/lost+found \
    --exclude=/sys \
    --exclude=/mnt \
    --exclude=/media \ 
    --exclude=/dev \
    --exclude=/share/Archive \
    /

Ein paar Abkürzungen

(basierend auf Ihrer Kommentaraktualisierung zum Festlegen von $HOSTNAME)

$HOSTNAME

Zwei Optionen, um das einzustellen:

  1. HOSTNAME festlegen

    HOSTNAME=$(hostname)

  2. Verwenden Sie die Befehlsersetzung (z. B. $(command) )

    So würde es wie oben aussehen. Dadurch wird der Befehl nur ausgeführt, bevor er verwendet wird.

$DATE

Eine weitere zu vermeidende Variable wäre leicht:

$(hostname)_$(date +%Y%m%d).tar.gz \

$ man date wird die Formate für die Datumsoptionen haben, das obige ist YYYYmmdd


Verwenden Sie den umgekehrten Schrägstrich, um einen Befehl in der nächsten Zeile fortzusetzen:

tar -cvpzf /share/Recovery/Snapshots/$HOSTNAME_$DATE.tar.gz \
--exclude=/proc \
--exclude=/lost+found \
--exclude=/sys  \
--exclude=/mnt  \
--exclude=/media  \
--exclude=/dev \
--exclude=/share/Archive \
/

Derselbe Befehl, aber mit Kommentaren für jede Zeile, wäre:

tar -cvpzf /share/Recovery/Snapshots/$(hostname)_$(date +%Y%m%d).tar.gz `#first comment` \
    --exclude=/proc `#second comment` \
    --exclude=/lost+found `# and so on...` \
    --exclude=/sys \
    --exclude=/mnt \
    --exclude=/media \ 
    --exclude=/dev \
    --exclude=/share/Archive \
    /

Linux
  1. So erstellen Sie ein Skript eines Linux-Befehls

  2. Wie benenne ich mehrere Dateien in einem einzigen Befehl oder Skript in Unix um?

  3. Linux-tar-Befehl

  4. tar-Befehlsbeispiele unter Linux

  5. Conda-Befehl funktioniert in der Eingabeaufforderung, aber nicht im Bash-Skript

Linux-Sleep-Befehl (Pausieren eines Bash-Skripts)

Umbenennungsbefehl in Linux (Mehrere Dateien umbenennen)

Verlaufsbefehl in Linux (Bash-Verlauf)

Der Linux-tar-Befehl erklärt

So führen Sie mehrere Linux-Befehle in einem einzigen Befehl aus

Wie bearbeite ich vorherige Zeilen in einem mehrzeiligen Befehl in Bash?