GNU/Linux >> Linux Esercitazione >  >> Linux

Linux Bash Script, singolo comando ma più righe?

Tutto quello che dovresti fare è aggiungere "\" alla fine di ogni riga e dovrebbe essere a posto.

Quindi il tuo sarà simile a:

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

Alcune scorciatoie

(basato sull'aggiornamento del tuo commento per l'impostazione di $HOSTNAME)

$HOSTNAME

Due opzioni per impostarlo:

  1. Imposta HOSTNAME

    HOSTNAME=$(nome host)

  2. Usa la sostituzione dei comandi (ad es. $(command) )

    Quindi sembrerebbe come sopra. Questo fa solo eseguire il comando prima di usarlo.

$DATE

Un'altra variabile evitata sarebbe facilmente:

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

$ man date avrà i formati per le opzioni di data, quello sopra è YYYYmmdd


Usa la barra rovesciata per continuare un comando sulla riga successiva:

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

Lo stesso comando, ma con commenti per ogni riga, sarebbe:

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. Comando tar di Linux

  2. Comando wc Linux

  3. Comando o script Linux che conta le righe duplicate in un file di testo?

  4. Lo script Bash stampa Command Not Found su righe vuote

  5. Script bash di Linux per estrarre l'indirizzo IP

Comando di sospensione di Linux (pausa di uno script Bash)

Rinomina comando in Linux (rinomina più file)

Comando della cronologia in Linux (Cronologia di Bash)

Spiegazione del comando tar di Linux

Come eseguire più comandi Linux in un unico comando

Come posso modificare le righe precedenti in un comando a più righe in Bash?