[i=s] 本帖最后由 释梵 于 2009-3-14 23:10 编辑 [/i]
#!/bin/bash
2
3 # 在一个"tarball"中(经过tar和gzip处理过的文件)
4 #+ 备份最后24小时当前目录下d所有修改的文件.
5
6 BACKUPFILE=backup-$(date +%m-%d-%Y)
7 # 在备份文件中嵌入时间.
8 # Thanks, Joshua Tschida, for the idea.
9 archive=${1:-$BACKUPFILE}
10 # 如果在命令行中没有指定备份文件的文件名,
11 #+ 那么将默认使用"backup-MM-DD-YYYY.tar.gz".
12
13 tar cvf - `find . -mtime -1 -type f -print` > $archive.tar
14 gzip $archive.tar
15 echo "Directory $PWD backed up in archive file \"$archive.tar.gz\"."
16
17
18 # Stephane Chazelas指出上边代码,
19 #+ 如果在发现太多的文件的时候,或者是如果文件
20 #+ 名包括空格的时候,将执行失败.
第六行和第九行是什么语法?看不懂了。。。
另外#+是什么意思啊?


heiyie 于 2009-03-07 15:53:23发表:
$()好像表示变量的赋值,中间貌似没什么-吧,而,{变量:+word}表示当变量已经被设置且为非空,则带入word值,否则什么都不带入(空值)。{变量:-word}则是当为非空时,带入其已有的值,否则带入word
释梵 于 2009-03-01 14:59:02发表:
。。。。。这都被你看出来了。。
谢谢你的提醒!
wang7131984 于 2009-03-01 13:09:59发表:
$()是一个命令替换与反引号效果相同,指的是执行date这个命令
${}是一个变量替换格式是${var:+/-/=value},而-号是指如果变量为空就是用value作为var的值。
如果你正在看的是ABS,建议你放弃这本书,这本书是垃圾经典,写的乱七八糟,一点条理性都没有。我真不知道那些说它好的人到底有没有认真的看过。
ShinyGuo 于 2009-03-01 13:07:52发表:
6、9行是赋值语句。
#表示是附注,让人看起来更明白的。#后的东西不会执行
释梵 于 2009-03-01 12:56:47发表:
对了,find后面的 . 是什么意思啊?