date命令在shell中的必备技能

字符串合并           

dirname=${year_str}${mon_str}



经常临时使用时就忘记了 date 的语法格式。特记录在此。

$ date +%a

"abdy"    星期 月 日 年(小写)

H M S    时间(小时、分钟、秒数)


各个选项的效果


$ date +%a

四                    (中文环境)

Thu                (英文环境)

$ date +%A

星期四

Thursday

$ date +%b

6月

$ date +%B

六月

$ date +%d

05

$ date +%D

06/05/14

$ date +%y

14

$ date +%Y

2014

$ date +%H

17

$ date +%M

20

$ date +%S

37




在脚本中组合成文件名


写个脚本获取一个日期时间字符串。

# vi date_format.sh

#!/bin/bash


# 提取时间数值

# The extraction time value

year_str=`date +%Y`
mon_str=`date +%b`
day_str=`date +%d`
hour_str=`date +%H`
min_str=`date +%M`
sec_str=`date +%S`


# 组合提取到时间数值

# combined to extract the time value

date_str=$year_str$mon_str$day_str$hour_str$min_str$sec_str


# 显示最终得到的时间字符串

# display time string result

echo $date_str


# chmod 755 date_format.sh ; ./date_format.sh

20146月05174410            我的截取环境是中文的,使用是尽量避免中文文件名。使用英文环境。


举个应用的例子(备份文件,备份后生成一个想要的文件名)

# vi datename.sh

#!/bin/bash

year_str=`date +%Y`
mon_str=`date +%b`
day_str=`date +%d`
hour_str=`date +%H`
min_str=`date +%M`
sec_str=`date +%S`

# date_str=$year_str$mon_str$day_str$hour_str$min_str$sec_str
# echo $date_str

dirname=""
filename=""

dirname=${year_str}${mon_str}

filename=${day_str}${hour_str}${min_str}${sec_str}

echo "value in function."
echo $dirname

echo $filename



# vi etc_httpd_bak.sh

#!/bin/bash

. /root/datename.sh

echo "value in shell"
echo $dirname
echo $filename

findir=${dirname}
finfile=${filename}

if [ -d /tmp/$findir ]
then
        echo ""
else
        /bin/mkdir -p /tmp/$findir &> /dev/null
fi

if [ -d /etc/httpd ]
then
        /bin/tar -zcf /tmp/${findir}/etc_httpd-${finfile}.tar.gz /etc/httpd
else
        echo "The directory in not exist.Please resume."
fi

ls /tmp/${findir}/etc_httpd-*



# ./etc_httpd_bak.sh

这个命令的结果在中文模式下运行后,和英文模式下运行后的效果有点区别。



wKiom1Xia2LiQwe1AABngpxKQnk988.jpg

本文出自 “小崔的实验笔记” 博客,谢绝转载!

你可能感兴趣的:(字符串,中文,记录,技能,英文)