读书人

鸟哥私房菜上的一个有关问题总是困扰

发布时间: 2012-03-15 11:50:38 作者: rapoo

鸟哥私房菜上的一个问题,总是困扰了我,请求帮助
[root@www scripts]# vi sh03.sh
#!/bin/bash
# Program:
# Program creates three files, which named by user's input
# and date command.
# History:
# 2005/08/23 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# 1. 讥使用者输入文件名,得 fileuser 这个发量;
echo -e "I will use 'touch' command to create 3 files." # 纯粹显示信息
read -p "Please input your filename: " fileuser # 提示使用者输入

# 2. 为了避免使用者随意按 Enter ,用发量功能分析档名是否有讴定?
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) # 今天的日期
file1=${filename}${date1} # 底下三行在配置文件名
file2=${filename}${date2}
file3=${filename}${date3}

# 4. 将档名建立吧!
touch "$file1" # 底下三行在建立档案
touch "$file2"
touch "$file3"

我在命令行中 输入sh sh03.sh后,发现报错为
date:invalid date

从我的判断来看应该是标红的地方出现了问题,请问,我错在什么地方了哦?

[解决办法]

Perl code
vi sh03.sh  #!/bin/bash  # Program:  # Program creates three files, which named by user's input   # and date command.  # History:  # 2005/08/23 VBird First release  PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH  # 1. 讥使用者输入文件名,得 fileuser 这个发量;  echo -e "I will use 'touch' command to create 3 files." # 纯粹显示信息read -p "Please input your filename: " fileuser # 提示使用者输入 # 2. 为了避免使用者随意按 Enter ,用发量功能分析档名是否有讴定?  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) # 今天的日期  file1=${filename}${date1} # 底下三行在配置文件名  file2=${filename}${date2}  file3=${filename}${date3}  # 4. 将档名建立吧!  touch "$file1" # 底下三行在建立档案  touch "$file2"  touch "$file3"
[解决办法]
写shell的时候要特别注意空格的使用 因为shell默认是用空格或者空白符做分隔的
所以命令之间必须用分隔符分开
空格很有必要
[解决办法]
空格!
[解决办法]
对于刚开始接触shell脚本的童鞋来说,空格总是一件令人头疼的事情。。。。

读书人网 >UNIXLINUX

热点推荐