logtime.sh
#!/bin/bash
nowtime=`date +"%Y-%m-%d %H:%M:%S"`
if [ "$2" == "" ]; then
dirpath=~/
else
dirpath=~/$2/
fi
if [ ! -d $dirpath ]; then
mkdir $dirpath
fi
echo ${nowtime}" start "${1} >> ${dirpath}${1}.log
if 条件语句,中括号里面,两边都要有空格。
ubuntu 或 deepin 系统,默认的sh是dash。执行./logtime.sh
正常。执行sh logtime.sh
报错。
logtime.sh: 4: [: ==: unexpected operator
将 == 改为 = 就行了,因为dash判断字符串相等用的是单个等于号 =. 等于号两边用空格。
#获取今天日期 yyyy-MM-dd 格式
today1=`date --date='0 days ago' +%Y-%m-%d`
#获取当前时间 yyyy-MM-dd HH:mm:ss 格式
nowtime=`date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"`
#获取昨天日期 yyyy-MM-dd 格式
yesterday2=`date --date='1 days ago' +%Y-%m-%d`
#获取1小时前时间 yyyy-MM-dd HH:mm:ss 格式
onehourage=`date --date='1 hours ago' "+%Y-%m-%d %H:%M:%S"`
#获取1小时后时间 yyyy-MM-dd HH:mm:ss 格式
onehourage2=`date --date='1 hours' "+%Y-%m-%d %H:%M:%S"`
#获取1个月前时间 yyyy-MM-dd HH:mm:ss 格式
date --date='1 month ago' "+%Y-%m-%d %H:%M:%S"
#获取1个月加1天前时间 yyyy-MM-dd HH:mm:ss 格式
date --date='1 month ago + 1 day ago' "+%Y-%m-%d %H:%M:%S"
#获取1个月减1天前时间 yyyy-MM-dd HH:mm:ss 格式
date --date='1 month ago - 1 day ago' "+%Y-%m-%d %H:%M:%S"
#获取1个月加1天加1小时加1分钟加1秒钟后时间 yyyy-MM-dd HH:mm:ss 格式
date --date='1 month + 1 day + 1 hour + 1 min + 1 sec ' "+%Y-%m-%d %H:%M:%S"
Shell脚本获取格式化日期与时间总结 https://blog.csdn.net/kwu_ganymede/article/details/50395000
shell中的各种括号用法 https://blog.csdn.net/wllinux12138/article/details/82693079