鸟哥的私房菜Shell cript中的一个小问题

在鸟哥的第三部分学习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"

作者: excellentbright   发布时间: 2011-06-08