简单的shell脚本之date小记

本文介绍了一个用于计算距离退伍日期天数的Shell脚本示例,并分享了在实际操作中遇到的问题及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash

echo "This program will try to calculate:"
echo "how many days before your demobilization date..."
read -p "please input your demobilization date (YYYYMMDD ex>20140909): " date2


date_d=$(echo $date2 | grep '[0-9]\{8\}')
if [ "$date_d" == "" ]; then
     echo "You input the wrong date format..."
     exit 1
fi

declare -i date_dem=`date --date="$date2" +%s`
declare -i date_now=`date +%s`
declare -i date_total_s=$(($date_dem-$date_now))
declare -i date_d=$(($date_total_s/60/60/24))
if [ "$date_total_s" -lt "0" ]; then
    echo "You had been demobilization before :"$((-1*$date_d))" ago"
else
    declare -i date_h=$(($(($date_total_s-$date_d*60*60*24))/60/60))
    echo "You will demobilize after $date_d days and $date_h hours"

fi

这个小程序(摘自鸟哥的一本书),自己在linux下实践时总是报错,不能正常运行。

仔细检查后发现有几个细节的地方没有注意到,特记录于此。

1.文中出现的都是反单引号(`)

2.date和“+”号之间必须跟空格


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值