Googleで検索して書いた次のスクリプトがあり、Linuxシステムをアーカイブにバックアップします。
#!/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 /
これはうまくいきますが、コマンドを複数行に渡って表示するようにスクリプトをフォーマットできるかどうか、と思うので、後で編集するのは簡単です。
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
/
そうすれば、後で読みやすく編集しやすくなります。 Bashスクリプトをこのようにフォーマットすることは可能ですか?
あなたがする必要があるのは各行の終わりに "\"を追加することだけであり、それは行ってもいいはずです。
だからあなたのようになります:
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 \
/
($ HOSTNAMEを設定するためのコメントの更新に基づいて)
$HOSTNAME
それを設定する2つのオプション:
HOSTNAMEを設定
HOSTNAME = $(ホスト名)
コマンド置換を使用する(例:$(command)
)
それでそれは上のように見えるでしょう。使用する前にコマンドを実行するだけです。
$DATE
避けられるもう一つの変数は簡単でしょう:
$(hostname)_$(date +%Y%m%d).tar.gz \
$ man date
は日付オプションのフォーマットを持ちます、上記はYYYYmmddです
次の行にコマンドを続けるには、円記号を使用します。
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 \
/
同じコマンドですが、各行にコメントが付いています。
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 \
/