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 スクリプトをこのようにフォーマットすることは可能ですか?
149 Jay LaCroix 2012-11-21
ベストアンサー
必要なのは、各行の最後に”\”を追加するだけで、それは行くのが良いはずです
あなたのはこんな感じになるのね
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つの選択肢があります
Set HOSTNAME
HOSTNAME=$(hostname)
コマンド置換(例:
$(command)
)を使用しますそうすると上のようになります。これは使う前にコマンドを実行させているだけです
$DATE
別の変数を回避することは容易であろう
$(hostname)_$(date +%Y%m%d).tar.gz \
$ man date
は日付オプションのフォーマットを持っていますが、上記はYYYYmmddです
197 nerdwaller 2012-11-21
次の行でコマンドを続行するには、バックスラッシュを使用します
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 \
/
17 Paul 2012-11-21
同じコマンドですが、各行にコメントをつけると次のようになります
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 \
/
8 Alter Lagos 2018-01-17
bashで使えます
PARAMS=(
-cvpzf /share/Recovery/Snapshots/$HOSTNAME_$DATE.tar.gz
--exclude=`enter code here`/proc
--exclude=/lost+found
--exclude=/sys
--exclude=/mnt
# this is a comment
--exclude=/media
--exclude=/dev
# --exclude=/something
--exclude=/share/Archive
/
)
tar ${PARAMS[@]}
3 Axel Heider 2020-04-04