前言
本文脚本,在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上可能因换行符等问题执行时出错),如:
使用方法
先给脚本执行权限:
chmod 777 获取q7文件签名日期.sh #注意修改文件路径和文件名
然后双击脚本,会弹出如下对话框:
点击“在终端中运行”,弹出:
将q7文件拖拽到终端窗口后放开,这样终端窗口就会获取到文件完整的路径和名称:
此时点击终端窗口,然后按下回车,即可得到签名时间:
一些问题
1、如果使用sh命令来调用脚本,那么最后一句“read -n 1”将执行失败!因此不建议使用sh来调用,可以用bash。如果实在喜欢用sh,那就加上参数:sh -c
2、脚本放在U盘上执行时,需要注意U盘的分区格式!Fat32是不支持Linux权限的,因此直接双击脚本,默认会使用文本编辑器打开,而脚本并不会被执行!可以把U盘分区格式化成exFat或者ntfs,或者使用bash来调用脚本即可。