我对这个问题还很陌生。
我有一个输入文件,显示我的gpg密钥和它们的到期日期。我正在使用while read循环来尝试读取文件并解析出我需要的两个字段。。。
#!/bin/bash
input="/home/currentkeys.txt"
checkdate=`date -d "+30 days" +%s`
while IFS= read -r line
do
keydate=`awk '{print $4}'`
printf "%sn" $keydate
keyuid=`awk '{print $1}'`
printf "%sn" $keyuid
done <"$input"
但当我运行脚本时,它只是将$keydates打印到屏幕上。。。
bash-4.2$ ./keyexpiryreport.sh
2020-08-08
2022-09-10
2022-09-10
2022-09-17
...
最终,我将使用$checkdate与$keydate进行比较,看看我们是否接近密钥过期,但如果我不能让第二个变量工作,我就有点困在这里了。。。
如果没有你的文件示例,我不知道它是否能工作。但是你可以这样做来清理脚本。
while read keyuid _ _ keydate _; do
echo "$keydate"
echo "$keyuid"
done <"$file"