Chinaunix首页 | 论坛 | 博客
  • 博客访问: 129733
  • 博文数量: 87
  • 博客积分: 2415
  • 博客等级: 大尉
  • 技术积分: 1030
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-27 16:32
文章分类

全部博文(87)

文章存档

2010年(2)

2009年(6)

2008年(79)

我的朋友

分类: LINUX

2008-04-18 16:11:52

想像一个状况,如果我每天要进行备份,而备份的资料又不想被覆盖掉,也就是说, 我想要将每天备份的资料放在不同的档案中。哇!这真困扰啊?难道要我每天去修改 script ? 不需要啊!因为每天的『日期』并不相同,所以我可以将档名取成类似∶ backup.20050802 , 不就可以每天一个不同档名了吗?呵呵!确实如此。好了,接下来出个例子∶ 我想要建立三个空的档案,档名最开头由使用者输入决定,假设使用者输入 filename 好了, 那今天的日期是 2005/08/23 ,我想要以前天、昨天、今天的日期来建立这个档案,亦即 filename_20050821, filename_20050822, filename_20050823 ,该如何是好?
[root@linux scripts]# vi sh03.sh
#!/bin/bash
# Program:
# 	User can keyin filename to touch 3 new files.
# History:
# 2005/08/23	VBird	First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

# 1. 让使用者输入档案名称,并取得 fileuser 这个变数;
echo -e "I will use 'touch' command to create 3 files."
read -p "Please input the filename what you want: " fileuser

# 2. 为了避免使用者随意按 Enter ,利用变数功能分析档名是否有设定?
filename=${fileuser:-"filename"}

# 3. 开始利用 date 指令来取得所需要的档名了;
date1=`date --date='2 days ago' +%Y%m%d`
date2=`date --date='1 days ago' +%Y%m%d`
date3=`date +%Y%m%d`
file1="$filename""$date1"
file2="$filename""$date2"
file3="$filename""$date3"

# 4. 将档名建立吧!
touch $file1
touch $file2
touch $file3
我透过一些简单的动作,这些动作都可以在 bash 那一章里面找到, 包括小指令 (`) 的取得讯息、变数的设定功能、变数的累加以及利用 touch 指令辅助! 如果您开始执行这个 sh03.sh 之后,你可以进行两次输入,一次直接按 [Enter] 来查阅档名是啥? 一次可以输入一些字元,这样来判断你的档案喔!关于 date 的指令应用,请 man date 吧! ^_^
阅读(469) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~