Jay*_*oix 179 linux script bash tar
我通过搜索 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 /
Run Code Online (Sandbox Code Playgroud)
这有效,但我想知道我是否可以格式化脚本以在多行上显示命令,类似于这样,以便以后轻松编辑:
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
/
Run Code Online (Sandbox Code Playgroud)
这样以后阅读和编辑就更容易了。是否可以通过这种方式格式化 Bash 脚本?
ner*_*ler 229
您需要做的就是在每一行的末尾添加“\”,这样就可以了。
所以你的看起来像:
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 \
/
Run Code Online (Sandbox Code Playgroud)
(基于您对设置 $HOSTNAME 的评论更新)
$HOSTNAME
两个选项来设置:
设置主机名
主机名=$(主机名)
使用命令替换(例如$(command)
)
所以它看起来像上面一样。这只是使命令在使用之前运行。
$DATE
另一个避免的变量很容易:
$(hostname)_$(date +%Y%m%d).tar.gz \
Run Code Online (Sandbox Code Playgroud)
$ man date
将有日期选项的格式,上面是 YYYYmmdd
Pau*_*aul 17
使用反斜杠在下一行继续执行命令:
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 \
/
Run Code Online (Sandbox Code Playgroud)
相同的命令,但每一行都有注释,将是:
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 \
/
Run Code Online (Sandbox Code Playgroud)
小智 7
你可以在 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[@]}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
281069 次 |
最近记录: |