试图在while read中解析并打印两个不同的值

  • 本文关键字:两个 打印 while read bash
  • 更新时间 :
  • 英文 :


我对这个问题还很陌生。

我有一个输入文件,显示我的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"

最新更新