Linux Shell编程学习笔记
打算在学习过程中将每个写过的程序一个个的往上贴;
2015-07-03
1. 鸟叔第三版13.2.1节“利用日期进行文件的创建”
源代码
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
read -p "Please input your filename:" fileuser
filename=${fileuser:-"file"}
date1=$(date --date='2 days ago' +%Y%m%d)
date2=$(date --date='1 day ago' +%Y%m%d)
date3=$(date +%Y%m%d)
file1=${filename}${date1}
file2=${filename}${date2}
file3=${filename}${date3}
echo ${file1}
exit 0
============================================================================================
1.
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
这两行用来为PATH增添一些路径。当输入一个命令或者文件地址时,如果输入的不是绝对地址,那么系统首先在PATH中记录的各路径中寻找;因此,这样做可以减少下面代码的复杂性(只需要写相对地址);另外,export PATH这条命令只是将原本PATH中不存在的路径添加进去,不会覆盖。
2.
filename=${fileuser:-"file"}
其中,fileuser是上一行代码中由用户输入的。这条语句的目的是防止用户直接输入ENTER。解释:
filename=${fileuser:-"file"}表示如果fileuser为空,将file赋给filename,否则将fileuser赋给filename
filename=${fileuser-"file"}表示如果fileuser不为空,将file赋给filename,否则将fileuser赋给filename
3.
date1=$(date --date='2 days ago' +%Y%m%d)
这句话的意思是将两天前的日期赋给date1;其中,'2 days ago'是一个参数。
即:date –date=’1 hours ago’ “+%Y-%m-%d %H:%M:%S”表示一个小时前的时间;