`
tomhibolu
  • 浏览: 1431053 次
文章分类
社区版块
存档分类
最新评论

*简单脚本测试--利用date进行文件的创建*

 
阅读更多
想像一个状况,假设我的服务器内有数据库,数据库每天的数据都不太一样,因此当我备份时, 希望将每天的数据都备份成不同的档名,这样才能够让旧的数据也能够保存下来不被覆盖。 哇!不同档名呢!这真困扰啊?难道要我每天去修改 script ?

不需要啊!考虑每天的『日期』并不相同,所以我可以将档名取成类似: backup.2011-08-15.data , 不就可以每天一个不同档名了吗?呵呵!确实如此。那个 2011-08-15怎么来的?那就是重点啦!接下来出个相关的例子: 假设我想要创建三个空的文件 (透过touch) ,档名最开头由使用者输入决定,假设使用者输入 filename 好了,那今天的日期是 2011/08/15 , 我想要以前天、昨天、今天的日期来创建这些文件,亦即 filename_20110813, filename_20110814, filename_20110815,该如何是好?

#!/bin/bash
#Program creates three files, which named by user's input and date command.
# History:
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 your filename: " 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"

测试:

[root@SOR_SYS test]# sh datefile.sh
I will use 'touch' command to create 3 files.
Please input your filename: bakupmas
[root@SOR_SYS test]# ll
total 12
-rw-r--r-- 1 root root 0 Aug 15 16:51 bakupmas20110813
-rw-r--r-- 1 root root 0 Aug 15 16:51 bakupmas20110814
-rw-r--r-- 1 root root 0 Aug 15 16:51 bakupmas20110815

-rw-r--r-- 1 root root 1015 Aug 15 16:35 datefile.sh
-rw-r--r-- 1 root root 248 Aug 15 15:49 echo-e.sh
-rw-r--r-- 1 root root 434 Aug 15 16:29 read-p.sh
[root@SOR_SYS test]#

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

假如你什么都不输入回车的话,会产生filename20110816 filename20110817 filename20110818 这三个文件,想想到底是为何呢?

变量配置方式str没有配置 str为空字符串str已配置非为空字符串

var=${str:-expr}var=exprvar=exprvar=$str

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

上面所列出的就能够解释这个原因:

假如你输入一个非空的值,说明str已被设为非空字符,则var为$str

假如你直接回车,即输入一个空字符串,则var取expr

这样解释,大家应该明白了吧?

分享到:
评论

相关推荐

    Linux常用命令集

    40. **touch** - 修改文件的时间戳或创建空文件。 41. **umask** - 设置新建文件的默认权限掩码。 42. **which** - 查找可执行文件的位置。 43. **cp** - 复制文件或目录。 44. **in** - 文件或目录操作工具。 45. *...

    win2000命令全集

    这个“Win2000命令全集”提供了全面的命令参考,帮助用户利用命令行来完成各种任务,包括文件管理、系统设置、网络配置、进程控制等。以下是一些重要的Windows 2000命令及其用途: 1. **DIR/ls** - 列出目录中的...

    关于的cmd命令简略

    ### 关于CMD命令简略 CMD(Command Processor)是Windows操作系统中的命令行解释器,它提供了用户与系统交互的一种方式。...希望通过对这些命令的学习,大家能够更好地利用CMD进行日常操作和脚本编写。

    cmd命令大全.doc

    - 使用示例:在批处理文件中使用`pause`暂停脚本并等待用户按键。 45. **POPD** - 还原PUSHD保存的当前目录的上一个值。 - 使用示例:在批处理文件中使用`popd`返回上一个目录。 46. **PRINT** - 打印文本文件。...

    Linux开发教程-At91rm9200 Linux开发教程-At91rm9200

    - **tftp服务器的配置**:tftp(Trivial File Transfer Protocol)是一种简单的文件传输协议,用于在无状态的客户端与服务器之间进行文件传输。配置tftp服务器是为了能够远程地将文件传输到目标板。 - **NFS服务器的...

    shell脚本实现本地文件与服务器文件同步

    在软件开发过程中,经常需要将本地开发环境中的文件同步到服务器上进行部署或测试。手动上传不仅耗时而且容易出错,因此编写一个自动化脚本来实现文件同步变得尤为重要。本文将详细介绍如何利用Shell脚本实现这一...

    VBA EXCEL教程

    - **复合类型**: 如Date、Object等。 - **特殊类型**: Variant类型可以存储任何类型的值。 **1.4 变量与常量** - **变量**: 用于存储数据的容器,可以在程序运行时改变其值。 - **常量**: 在程序运行过程中值不会...

    通过Powershell统计存储每日文件新增数量-hexiaoqiang1

    总结来说,利用PowerShell进行Azure Blob存储的文件增长量统计,需要熟悉Azure PowerShell的命令以及对时间戳和条件判断的理解。这种自定义脚本的方法提供了灵活性和定制性,能够满足特定的监控需求。

    js学习笔记

    - 如何利用DOM编程实现动态添加或删除页面元素? - 如何监听用户的行为变化并作出响应? #### 第四章:脚本编程的相关技术 **4.1 使用VS.NET编写JS** - VS.NET是一款强大的集成开发环境,支持多种编程语言,包括...

    ubuntu部落(适合初学者,可以作为初学者的手册)

    - **sort[-o<输出文件>][-t<分隔字符>][+<起始字段>-<结束字段>][文件]**:对文件内容进行排序。 - **more**:分页显示文件内容。 - **diff<文件名>**:比较两个文件的不同之处。 - **cksum[文件名]**:计算文件...

    tapestry4.0简易教程

    ### Tapestry 4.0 简易教程知识点解析 #### 一、基础知识(Using Forms) **1.1 Page文件和Class文件联系** - **概念理解:** 在Tapestry框架中,`Page`文件与对应的Java `Class`文件之间存在着紧密的联系。这种...

    BAT批处理脚本-其他.zip

    - 对于涉及重要文件的操作,先在安全环境中测试脚本,确认无误后再在生产环境中运行。 4. **示例**: 一个简单的批处理脚本可能是这样的: ``` @echo off title 文件备份脚本 echo 正在备份文件... copy C:\...

    详细的EXCLVBA初步教程

    - **定义**: VBA(Visual Basic for Applications)是Microsoft Office应用程序内嵌的一种脚本语言。 - **优点**: - 自动化日常任务。 - 提高工作效率。 - **宏录制**: - 录制宏: 使用“录制新宏”功能记录用户...

    批处理脚本

    - **系统信息和网络**:如`DATE`和`TIME`设置日期和时间,`PING`测试网络连通性,`TRACERT`追踪路由。 - **程序和进程管理**:如`START`启动程序,`TASKLIST`列出当前运行的任务,`TASKKILL`结束进程。 3. **...

    Linux一句话精彩问答--2009/12/14版

    **131019 利用两个现存文件,生成一个新的文件** - **知识点**: 使用`cat file1 file2 > newfile`命令可以将两个文件内容合并到新文件中。 - **应用场景**: 合并日志文件或其他文本文件时。 **131020 设置com1口,...

    Excel VBA 详解

    - **1.3 录制简单的宏**: 使用 Excel 的宏录制功能快速创建基本任务的脚本。 - **1.4 执行宏**: 通过宏对话框、快捷键或按钮等方式运行宏。 - **1.5 查看录制的代码**: 在 VBA 编辑器中查看录制的宏代码。 - **1.6 ...

Global site tag (gtag.js) - Google Analytics