问个关于shell脚本的问题

通过用户输入名字来建立文件,文件名是用户输入的名字,然后再名字后面加上前天、昨天、今天的日期分别建立3个文件。
#!/bin/pash
#1. 让用户输入文件名,建立fileuser变量
echo "i will use 'touch' command to create 3 files"
read -p "please input the filename what you want :" fileuser
#2.为了避免用户随意按回车,使用变量功能分析是否设置了文件名
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'
后面就不写了。
麻烦详细分析下第2和第3段内容,我看不懂啊。不懂这个语法结构。比如为什么加---横杠这样的,谢谢,分不多了,在线等

第2段:filename=${fileuser:-"filename"}
意思是当变量fileuser为空时,filename变量的值就是字符串“filename”,如果不为空时,filename变量的值就是fileuser变量的值。也就是说,文件名最后就是字符串“filename”时,就表明没有设置文件名
第3段:这是取时间命令的固定格式,没什么好讲的
今天:date1=`date +%y%m%d`
昨天:date2=`date -d "1 days ago" +%y%m%d`
前天:date3=`date -d "2 days ago" +%y%m%d`
以上是取时间的命令,注意命令的左右两边的符号是键盘上波浪线的那个键。用了什么---就错了。

不知道你的明白?O(∩_∩)O~追问

能不能麻烦再说下date的用法。
date1=‘date --date='2 days ago' +%y%m%d’

date2=‘date --date=1 days ago' +%y%m%d’
你写的那个date2=`date -d "1 days ago" +%y%m%d`
我明白了,但是前面的date1=‘date --是什么意思啊

追答

date的用法就比较复杂了,你man一把就全明白了:
-d, --date=STRING
display time described by STRING, not 'now'
我的-d 跟你的--date=STRING是等价的,明白了吗?

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网