linux之shell:利用日期进行文件创建
2014-01-06 16:03
561 查看
sh03.sh
#!/bin/bash
#program
# program creates three files,which named by user's input
# and date command
#History:
#2013/12/26 yusiyu 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
#!/bin/bash
#program
# program creates three files,which named by user's input
# and date command
#History:
#2013/12/26 yusiyu 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
相关文章推荐
- 利用日期进行文件的创建
- bash的特殊用法:-和利用日期进行文件创建
- Linux中利用Vim对文件进行密码保护的方法详解
- linux创建带日期的文件
- *简单脚本测试--利用date进行文件的创建*
- Shell脚本运行hive语句 | hive以日期建立分区表 | linux schedule程序 | sed替换文件字符串 | shell推断hdfs文件文件夹是否存在
- 利用rsync工具进行同步windows和linux机器之间的文件工作记录20130614
- 如何在Linux环境下利用移动硬盘进行文件拷贝工作
- 利用IDEA进行JNI开发:使用NDK生成Linux平台下的so文件
- 当Linux提权不能反弹Shell时利用metasploit进行提权
- 在linux 系统中利用 facl 实现目录下创建文件继承父目录的权限的所属组
- Linux下利用openssl对文件进行加密和解密
- Linux下shell脚本编写:创建文件
- Shell脚本对Linux进行文件校验
- 【Linux】利用文件标识符进行文件的读写
- Xshell创建密钥利用Key进行Linux系统的SSH认证
- 嵌入式Linux系统中利用mdev自动创建设备文件节点
- linux下根据日期创建文件或者文件夹
- 在linux 内核中做开关变量的三种方法—— 利用proc 、sys文件系统,字符设备等与内核进行交互
- 前端页面利用Blob对象创建文件进行下载