zoukankan      html  css  js  c++  java
  • (原创)鸟哥linux学习script shell相关笔记

          在使用鸟哥linux进行script shell学习的过程中碰到一些不太明白的知识点,在这里进行一些记录

    1.

    [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"

    在这里面,有两个是比较不理解的

    a. filename=${fileuser:-"filename"} # 开始判断有否配置档名

    这个是shell进行变量判断的方式,如下表

    变量配置方式 str 没有配置 str 为空字符串 str 已配置非为空字符串
    var=${str-expr} var=expr var= var=$str
    var=${str:-expr} var=expr var=expr var=$str

    是第二种情况的形式,下面直接把这条语句拆分分二种情况来看

    1)当fileuser没有配置或者为空字符串的时候,filename=filename,因为filename本身是一个变量,所以使用"filename"或者'filename',这就是单纯的字符串了。最终运行的结果,就是创建了三个filename20130908类似的文件

    2)当fileuser有赋值的时候,filename=$fileuser,这种情况下创建 的是wang20130908的文件,这个wang是输入的fileuser.

    b. date1=$(date --date='2 days ago' +%Y%m%d) 

    这个可以使用man date来查看date的参数,

    date --date='2 days ago' 是显示2天前的时候,这个时候的显示还是类似这样子的显示格式

    [root@localhost scripts]# date --date='2 days ago'

    Tue Sep 3 15:16:40 CST 2013

    date +%Y%m%d是把显示的格式,在+号前是有个空格的,不能少

    [root@localhost scripts]# date +%Y%m%d
    20130905

  • 相关阅读:
    Spring spEL
    Spring 使用外部部署文件
    Spring 自动装配
    spring 属性配置细节
    hdu 1054 Strategic Game
    fzu 2037 Maximum Value Problem
    将博客搬至CSDN
    HDU 4714 Tree2Cycle
    HDU 1009 The Shortest Path in Nya Graph
    POJ 1942 Paths on a Grid 组合数的优化
  • 原文地址:https://www.cnblogs.com/virtualnet/p/3302838.html
Copyright © 2011-2022 走看看