GNU/Linux >> Znalost Linux >  >> Linux

Linux Bash Script, jeden příkaz, ale více řádků?

Vše, co byste měli udělat, je přidat "\" na konec každého řádku a mělo by to být dobré.

Vaše bude tedy vypadat takto:

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 \
    /

Několik zkratek

(na základě aktualizace vašeho komentáře pro nastavení $HOSTNAME)

$HOSTNAME

Dvě možnosti, jak to nastavit:

  1. Nastavte HOSTNAME

    HOSTNAME=$(název hostitele)

  2. Použijte substituci příkazů (např. $(command) )

    Takže by to vypadalo jako výše. To jen způsobí, že se příkaz spustí před jeho použitím.

$DATE

Další proměnnou, které bychom se měli vyhnout, by bylo snadno:

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

$ man date bude mít formáty pro možnosti data, výše je YYYYmmdd


Pomocí zpětného lomítka pokračujte v příkazu na dalším řádku:

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 \
/

Stejný příkaz, ale s komentáři pro každý řádek, by byl:

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. Jak přejmenovat více souborů v jediném příkazu nebo skriptu v systému Unix?

  2. Příklady příkazů tar v Linuxu

  3. Skript Bash vypíše příkaz Nenalezen na prázdné řádky

  1. Příkaz tar pro Linux

  2. Linux bash skript pro extrakci IP adresy

  3. Spusťte příkaz bash na jenkins pipeline

  1. Příkaz wc pro Linux

  2. Linuxový příkaz nebo skript počítající duplicitní řádky v textovém souboru?

  3. Příkaz Conda pracuje v příkazovém řádku, ale ne ve skriptu bash