user3130478
user3130478

Reputation: 217

Linux: Tail -f multiple options

I want to add multiple tail scripts in one.

First one:

tail -f /var/script/log/script-log.txt | if grep -q "Text1"; then echo "0:$?:AAC32 ONLINE"
fi

I want to add 5 more lines with a diffrent word, is this possible?

else if, if etc. etc.

Thanks!

Upvotes: 0

Views: 254

Answers (3)

RomanPerekhrest
RomanPerekhrest

Reputation: 92904

In your case it's enough to use logical AND operator:

tail -f /var/script/log/script-log.txt | grep -q "text1\|text2\|text3" && echo "0:$?:AAC32 ONLINE"

Upvotes: 1

Shachar Shemesh
Shachar Shemesh

Reputation: 8603

#!/bin/sh

PIPENAME="`mktemp -u "/tmp/something-XXXXXX"`"
mkfifo -m 600 "$PIPENAME"
tail -f /tmp/log.txt >"$PIPENAME" &

while read line < "$PIPENAME"
do
    echo $line # Whatever you want goes here
done

rm -f "$PIPENAME"

If you want Bash specific, you can use the -u option for read, and then you can rm the named pipe before the loop starts, which is more guaranteed to leave things clean when you're done.

Upvotes: 0

Ivan Sheihets
Ivan Sheihets

Reputation: 830

tail -f /var/script/log/script-log.txt | if grep -E "Text1|Text2|Text3"; then echo "0:$?:AAC32 ONLINE" fi

Upvotes: 1

Related Questions