J'ai le script suivant que j'ai écrit en effectuant une recherche sur Google et qui sauvegarde mon système Linux sur une archive:
#!/bin/bash
# init
DATE=$(date +20%y%m%d)
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 /
Cela fonctionne, mais je me demande si je peux formater le script pour afficher la commande sur plusieurs lignes, comme cela, afin qu'il soit facile de l'éditer ultérieurement:
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
/
De cette façon, il est plus facile de lire et d’éditer plus tard. Est-il possible de formater un script Bash de cette façon?
Tout ce que vous devez faire est d’ajouter "\" à la fin de chaque ligne et il devrait être bon de partir.
Ainsi, le vôtre ressemblera à:
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 \
/
(en fonction de la mise à jour de vos commentaires pour le paramètre $ HOSTNAME)
$HOSTNAME
Deux options pour définir cela:
Définir le nom d'hôte
HOSTNAME = $ (nom d'hôte)
Utiliser la substitution de commande (par exemple, $(command)
)
Donc, cela ressemblerait à ce qui précède Cela fait juste exécuter la commande avant de l’utiliser.
$DATE
Une autre variable évitée serait facilement:
$(hostname)_$(date +%Y%m%d).tar.gz \
$ man date
aura les formats pour les options de date, le ci-dessus est AAAAMMJJ
Utilisez la barre oblique inverse pour continuer une commande sur la ligne suivante:
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 \
/
La même commande, mais avec des commentaires pour chaque ligne, serait:
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 \
/