一个shell小案例(创建日期目录)

今天看到一个shell题目,正好拿来练练手
需要在多个目录中 (如:beijing shanghai tianjin guangzhou 等等) 创建子目录(以年份命名),然后进入子目录,新建目录并以当天的日期命名。
最终的效果是这样的:

代码如下:

china/guangdong/
china/guangdong/shenzhen/2010/1206
china/guangdong/shenzhen/2010/1207
china/guangdong/shenzhen/baoan/2010/1206
china/guangdong/shenzhen/baoan/2010/1207
china/guangdong/shenzhen/baoan/guangming/2010/1206
china/guangdong/shenzhen/baoan/guangming/2010/1207

我的实现:

#!/bin/bash
    read -p "PLEASE input country:" cou
    read -p "PLEASE input city:" city
    read -p "PLEASE input name:"  name
#echo "$cou,$city,$name"
    date=$(date +%Y)
#echo $date
    date2=$(date +%m%d)
#    echo $date2
    if [ -d "./$cou/$city/$name/$date/$date2" ];then
        echo "the dir is exit"
    else
        mkdir -p ./$cou/$city/$name/$date/$date2
    fi

效果:
[root@localhost hbshell]# test.sh
PLEASE input country:china
PLEASE input city:hangzhou
PLEASE input name:hb

#[root@localhost hbshell]# ll china/hangzhou/hb/2011/0321/
总计 0

(0)

相关推荐

  • 一个不错的shell 脚本教程 入门级

    建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用.所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行). 如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit.kedit.emacs.vi 等来编写我们的shell程序. 程序必须以下面的行开始(必须方在文件的第一行): #!/b

  • linux shell实现转换输入日期的格式

    对于用户输入日期的合法性检验,是个很重要的问题,这个例子是简单得取得用户输入的日期,并转换为相应的格式,但不完美,原因请看后文. #!/bin/sh # normdate -- Normalizes month field in date specification # to three letters, first letter capitalized. A helper # function for Script #7, valid-date. Exits w/ zero if no err

  • 利用shell获取指定日期前N天的日期

    一.创建测试文件test.sh #!/bin/sh . /etc/profile # 参数: # args[0] ,数据日期,日期格式yyyy-MM-dd # 取30天以前的日期 function get_date_30daysbefore() { sec=`date -d $1 +%s` sec_30daysbefore=$((sec - 86400*30)) days_before=`date -d @$sec_30daysbefore +%F` echo $days_before } if

  • 判断输入的日期是否正确的shell脚本

    今儿个讲得是判断输入的日期是否正确,有利用到我们之前03这个例子中的函数 下面是代码 #!/bin/sh # valid-date -- Validates a date, taking into account leap year rules. exceedsDaysInMonth() { case $(echo $1|tr '[:upper:]' '[:lower:]') in jan* ) days=31 ;; feb* ) days=28 ;; mar* ) days=31 ;; apr

  • linux shell中 if else以及大于、小于、等于逻辑表达式介绍

    比如比较字符串.判断文件是否存在及是否可读等,通常用"[]"来表示条件测试. 注意:这里的空格很重要.要确保方括号的空格.笔者就曾因为空格缺少或位置不对,而浪费好多宝贵的时间. if ....; then....elif ....; then....else....fi[ -f "somefile" ] :判断是否是一个文件[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限[ -n "$var" ]

  • PowerShell中iso8601格式日期和DateTime对象互转实例

    一.iso8601格式转换成DateTime对象 这里主要用到datetime的静态方法static datetime ParseExact(string s, string format, System.IFormatProvider provider) 复制代码 代码如下: $dateTimeStr = '20141231T23:59:59' $format = 'yyyyMMddTHH:mm:ss' $formatProvider = [Globalization.CultureInfo]

  • perl与shell获取昨天、明天或多天前的日期的代码

    一.首先说下perl如何获取 复制代码 代码如下: #!/usr/bin/perl -wuse POSIX qw(strftime);my $day = strftime("%Y%m%d", localtime(time - 24*3600));#获取昨天的日期 二.在Linux中对man date -d 参数说的比拟笼统,以下示例进一步解释: # -d, --date=STRING display time described by STRING, not `now'[root@Gm

  • Shell脚本遍历一个日期范围实例

    如果跟shell脚本打交道,遍历一个时间范围是很常见的事情,那么今天就跟大家分享一下: 复制代码 代码如下: #!/usr/bin/env bash date1="$1" date2="$2" echo "date1: $date1" echo "date2: $date2" tempdate=`date -d "-0 day $date1" +%F` enddate=`date -d "-0 d

  • PowerShell中使用Get-Date获取日期时间并格式化输出的例子

    在PowerShell中有一个Get-Date的cmdlet,使用它可以直接返回当前的日期和时间.使用-Format参数可以返回当前的年.月.日.时.分.秒等. Get-Date的直接使用 在PowerShell中直接调用Get-Date,可以返回当前的日期和时间,包括年.月.日.时.分.秒.举例如下: 复制代码 代码如下: PS C:\Users\zhanghong> Get-Date 2013年9月9日 22:26:56 Write-Host中使用Get-Date 注意:在Write-Hos

  • 获取两个日期间隔时间的shell脚本代码

    复制代码 代码如下: #!/bin/sh# 获取所在季度的第一天,到昨天的日期间隔# link:www.jb51.net# date:2013/2/28 day=`date -d "1 days ago " "+%Y%m%d"`;year=`expr substr ${day} 1 4`;month=`expr substr ${day} 5 2`;s_date=$year"0101"if [ "$month" == &quo

随机推荐