Linux获取q7签名文件的签名时间脚本

这是一个在UOS上运行的Bash脚本,用于读取.q7文件并提取其中的签名日期。脚本首先验证文件是否为.q7格式,然后解析日期并转换月份为数字形式。如果文件不存在,脚本会给出错误提示。此外,还提供了关于在不同环境(如Linux、Windows、Fat32分区)下运行脚本的注意事项。

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

前言

本文脚本,在UOS上测试通过。

 

脚本代码

#!/bin/bash
echo 请将q7文件拖入:
read file
file=`echo "$file"|sed s/\'//g` #去除文件名前后的单引号 ' 否则后面的判断不对

isq7=`echo "$file"|awk -F. '{print $NF}'`
if [ $isq7 != "q7" ];then
  echo 后缀名不是.q7,脚本将退出2!
  read -n 1
  exit
fi

if [ -e "$file" ];then  #文件存在为真
  time=`cat "$file"|grep --binary-files=text 'date'|awk -F, '{print $4}'`
  echo -e $time "\n"
  year=`echo $time|awk '{print $6}'|cut -c 1-4`
  month=`echo $time|awk '{print $2}'`

  if [ $month = "Jan" ];then #sh中,文本比较符是 = 而不是 ==
     month="1"
  elif [ $month = "Feb" ];then
     month="2"
  elif [ $month = "Mar" ];then
     month="3"
  elif [ $month = "Apr" ];then
     month="4"
  elif [ $month = "May" ];then
     month="5"
  elif [ $month = "Jun" ];then
     month="6"
  elif [ $month = "Jul" ];then
     month="7"
  elif [ $month = "Aug" ];then
     month="8"
  elif [ $month = "Sep" ];then
     month="9"
  elif [ $month = "Oct" ];then
     month="10"
  elif [ $month = "Nov" ];then
     month="11"
  elif [ $month = "Dec" ];then
     month="12"
  fi
  echo 签名时间:$year年 $month月
  echo 签名有效期一般为一年,可将时间设置在签名之后一个月
else
  echo "q7文件不存在,请检查输入!"
fi

read -n 1

#skyyx2002
#2022.06.28

将上面的脚本保存(最好在Linux上操作,Windows上可能因换行符等问题执行时出错),如:

ea2b301146f64d26a0b5344b58707b1f.png

使用方法

先给脚本执行权限:

chmod 777 获取q7文件签名日期.sh  #注意修改文件路径和文件名

然后双击脚本,会弹出如下对话框:

2549fe21fdac4791ac74a509906221c1.png

点击“在终端中运行”,弹出:

dc42d49073264df9b67bed6e0184185c.png

将q7文件拖拽到终端窗口后放开,这样终端窗口就会获取到文件完整的路径和名称:

9a40b5531bdb4aba9227d0f65f05de50.png

此时点击终端窗口,然后按下回车,即可得到签名时间:

67711f5976844e349815309358d9cd37.png

一些问题

1、如果使用sh命令来调用脚本,那么最后一句“read -n 1”将执行失败!因此不建议使用sh来调用,可以用bash。如果实在喜欢用sh,那就加上参数:sh -c 

2、脚本放在U盘上执行时,需要注意U盘的分区格式!Fat32是不支持Linux权限的,因此直接双击脚本,默认会使用文本编辑器打开,而脚本并不会被执行!可以把U盘分区格式化成exFat或者ntfs,或者使用bash来调用脚本即可。

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

skyyx2002

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值