当前位置: 技术问答>linux和unix
鸟哥私房菜上的一个问题,总是困扰了我,请求帮助
来源: 互联网 发布时间:2017-01-28
本文导语: [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/sb...
[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
从我的判断来看应该是标红的地方出现了问题,请问,我错在什么地方了哦?
#!/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
从我的判断来看应该是标红的地方出现了问题,请问,我错在什么地方了哦?
|
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 -x sh03.sh
查看下你的过程哪错了
|
写shell的时候要特别注意空格的使用 因为shell默认是用空格或者空白符做分隔的
所以命令之间必须用分隔符分开
空格很有必要
所以命令之间必须用分隔符分开
空格很有必要
|
空格!
|
对于刚开始接触shell脚本的童鞋来说,空格总是一件令人头疼的事情。。。。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。