#1 楼
您需要做的就是在每行的末尾添加“ \”,这样就可以了。因此您的外观将如下所示:
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
设置两个选项:
设置主机名
主机名= $(主机名)
使用命令替换(例如
$(command)
),因此它看起来像上面。这只是使命令在使用之前运行。
$DATE
避免另一个变量很容易:
$(hostname)_$(date +%Y%m%d).tar.gz \
$ man date
将具有日期选项的格式,以上为YYYYmmdd #2 楼
使用反斜杠在下一行继续命令: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 \
/
评论
我回去更新它以使其更有用并获得缩进。我总的来说爱SU。
–nerdwaller
2012年11月21日,3:35
例如,这对我不起作用。在别名中ub ='source〜/ .bash_aliases \ && source $ HOME / .bash_aliases \ && echo“别名已更新”。
–TheDefinitionist
16-10-5在17:12
@TheDefinitionist听起来与此问题不同。也许打开一个新问题?
– Paul
16-10-6在2:58
我可以在右列中排列反斜杠吗?
– SDsolar
17年7月30日在23:45
@SDsolar可以使用空格和制表符将斜杠对齐。
– Paul
17年7月31日在0:53
#3 楼
相同的命令,但每行都有注释: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 \
/
#4 楼
您可以在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[@]}
评论
多谢你们。最后一件事。我的脚本的文件名部分似乎存在问题:$ HOSTNAME_ $ DATE.tar.gz现在运行脚本时,输出文件为:20121120.tar.gz
–杰伊·拉克鲁瓦(Jay LaCroix)
2012年11月21日在3:26
如果您想将实际的“主机名”放在反勾号(选项卡上方的波浪号“〜”键):/share/Recovery/Snapshots/`hostname`_$DATE.tar.gz
–nerdwaller
2012年11月21日在3:36
随时@JayLaCroix-欢迎来到SU!
–nerdwaller
2012年11月21日,3:40
建议使用$(command)代替`command`。
– andrybak
15年1月25日在10:46
使用withspaces作为分隔符。如果我在第一行使用ssh并在随后的几行使用命令,那么我认为除了反斜杠外,我还需要使用分号。
– Timo
20-11-22在8:23