在使用鸟哥linux进行script shell学习的过程中碰到一些不太明白的知识点,在这里进行一些记录
1.
[root@www scripts]# vi sh03.sh |
在这里面,有两个是比较不理解的
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 |