使用带有if和then语句的tail

时间:2015-10-12 19:29:41

标签: macos if-statement grep tail logfile

尝试(理论上)尾随最后两行(-n 2)的日志文件,然后继续使用if / then语句。当然,这将是一个将从launchctl .plist中调用的脚本。

基本上它看起来像是在我脑海中,虽然它不对......

#!/bin/sh

last-entry= tail -n 2 command # show only last two lines of log file

if last-entry is less than (<) two lines, then
    execute command here
fi

1 个答案:

答案 0 :(得分:0)

如果你要做的是测试该文件包含完全两行,那么你只想使用wc -l并在标准输入上提供内容(以避免{{ 1}}像往常一样打印出文件名。)

wc

通过标准输入提供#!/bin/sh if [ "$(wc -l < /private/var/log/accountpolicy.log)" -ne 2 ]; then exit fi # Do whatever you want when it does contain exactly two lines here. 文件非常重要,因为正常调用(例如wc -lwc -l filename“帮助”打印行数文件名到标准输出,因此需要字段拆分/等。获得适合比较的数字。当wc正在读取标准输入时,它没有文件名,因此不会这样做。

注意:

只有wc完成执行后关心文件的实际内容,这种做法才 安全

如果使用该文件的其他部分中的文件内容,则这是一个典型的检查时间使用漏洞。有关此主题的更多信息,请参阅MITRE网站上的this pagethis Wikipedia entry