如何将SQL查询中的值读入shell脚本中的变量? 输出将打印到日志文件中。 sql查询的值可能不同,因此我想将其捕获到变量中以测试其值。
输出来自日志消息功能,他在日志文件中打印3行(称为3次),我要查找的值是$ logMsg打印的第二行。
输出代码为:
echo "$dateStamp Program: $programName: PID=$programPID: $logMsg $logFunc" >> $LOGFILE
输出如下:
Fri Jul 31 15:06:06 Program: test3: PID=3570: completed EXECUTE_SQL
查询值为:"已完成",但可以"中止过程" ...
我尝试的是:
abc=`grep -o completed ${LOGFILE} | tail -2`
echo $abc
但结果一直都是完成的。出了点问题。 谢谢你的回答。
答案 0 :(得分:0)
好像你只想打印第二行的倒数第二个字段:
value=$(tail -2 ${LOGFILE} | awk '{print $(NF-1)}')
如果用逗号等界定日志文件,这些事情一般也会更容易。
答案 1 :(得分:0)
目前,您只需要completed
(选项-o
),因此毫无疑问您将始终只接收此字符串(只要它是在日志文件的最后两行;否则你会收到一个空字符串。)
您可以列出可能收到的所有值,并使用扩展正则表达式来“或”它们(使用|
)。然后,您将使用了解扩展正则表达式的egrep
:
abc=$(egrep -o 'completed|abort in process' "${LOGFILE}" | tail -2)