できるだけシンプルに。
このスクリプトで、「out.log」というログファイルで「hello」と言う行をキャッチしたい..ログファイルに次のものが含まれていることがわかっている場合でも、常に「echo expression evaluates as false」が出力されるという問題が発生します。欲しいライン
#!/bin/bash
SERVICE_HOME="home/username/Desktop/SMX3test"
CURRENT_USER=`whoami`
start=0
NULLPOINT=out.log
OUT=hello
LINES=20
if [ 'tail -n $LINES $NULLPOINT | grep hello' = "$OUT" ];
then
echo expression evaluated as true
else
echo expression evaluated as false
fi
exit $start
ヒントや解決策を知っている人はいますか?
/ふう
#わかった!##
#プリファイナルコード:
#!/bin/bash
############################
# Phew's Start/stop script #
############################
SERVICE_HOME="opt/data/log/ls/smx3/"
CURRENT_USER=`whoami`
start=0
NULLPOINT=servicemix.log
OUT=NullPointerException
LINES=20
REV=$(tail -n $LINES $NULLPOINT | grep NullPointerException)
if [ $REV = "$OUT" ];
then
/etc/init.d/ls-smx3 stop && sleep 300 && /etc/init.d/ls-smx3 start
else
echo "Allting är okej!"
fi
exit $start
#####
#END#
#####