zoukankan      html  css  js  c++  java
  • shell script练习:利用日期进行文件的创建

    • 随日期变化:利用 date 进行文件的创建

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

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

    [root@www scripts]# vi sh03.sh
    #!/bin/bash
    # Program:
    #	Program creates three files, which named by user's input 
    #	and date command.
    # 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 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"
    

    上面的范例鸟哥使用了很多在十一章介绍过的概念: 包括小命令『 $(command) 』的取得信息、变量的配置功能、变量的累加以及利用 touch 命令辅助! 如果你开始运行这个 sh03.sh 之后,你可以进行两次运行:一次直接按 [Enter] 来查阅档名是啥? 一次可以输入一些字节,这样可以判断你的脚本是否设计正确喔!

  • 相关阅读:
    java server: all kinds of errors
    fragment使用的错误
    unity3d+vuforia开发增强现实例子编译
    android遇到的几个问题
    cocos2dx 特效
    cchttpclient中停止网络请求的方法
    cocos2dx 2.2.5 hitWidget->onTouchEnded(pTouch, pEvent); 异常
    将博客搬至CSDN
    ffmpeg 编译Android
    常用注解
  • 原文地址:https://www.cnblogs.com/Andy-Lv/p/5317752.html
Copyright © 2011-2022 走看看