鸟哥的私房菜Shell cript中的一个小问题
时间:2011-06-08 来源:excellentbright
在鸟哥的第三部分学习shell script中有这样一个小例子sh03.sh
#!/bin/bash
#2011/06/08 Yannis First Release
echo "I will use 'touch' command to create files" #显示信息
read -p "Please input your filename : " fileuser #提示用户输入
#为了避免用户随意按下Ecter键,利用变量功能分析文件名是否有效
filename=${fileuser:-"filename"} #开始判断是否有配置文件
#开始利用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}
#创建文件名
touch "$file1"
touch "$file2"
touch "$file3"
本人在unbuntu下运行,无法成功,显示请尝试date --help来获取更多信息
在查看date命令之后发现date命令的参数设置应该改为 date -d ‘2 days ago’ +%Y%m%d 要注意参数之间的空格,+号和后面的显示格式并没有空格,有空个就会报错的
所以最后代码改为即可运行
#!/bin/bash
#2011/06/08 Yannis First Release
echo "I will use 'touch' command to create files" #显示信息
read -p "Please input your filename : " fileuser #提示用户输入
#为了避免用户随意按下Ecter键,利用变量功能分析文件名是否有效
filename=${fileuser:-"filename"} #开始判断是否有配置文件
#开始利用date命令来取得所需要的文件名
date1=$(date -d '2 days ago' +%Y%m%d) #前两天的日期
date2=$(date -d '1 days ago' +%Y%m%d) #前一天的日期
date3=$(date +%Y%m%d) #今天的日期
file1=${filename}${date1}
file2=${filename}${date2}
file3=${filename}${date3}
#创建文件名
touch "$file1"
touch "$file2"
touch "$file3"
相关阅读 更多 +