我想检查作业的结果并在 上执行操作FAILED
。
首先:我 grep 应用程序日志文件中该行的最后一个单词(对于最近处理的文件 ( $processedfilename
)):
check1=$(grep "$processedfilename" "$logfile" | grep "anotherword" | \
grep "FAILED" | tail -1 | awk '{print $NF}')
这导致[FAILED]
.
现在我想检查结果
if [ $check1 -eq "[[FAILED]" ]
then
或者
if [ $check1 -eq "\[FAILED]" ]
then
总有算术语法错误。
检查的正确语法是什么[FAILED]
?
答案1
您应该始终用双引号引用变量。并且您需要=
字符串等于。所以:
if [ "$check1" = "[FAILED]" ]; then
答案2
您正在通过使用进行算术比较-eq
导致错误,您需要通过使用=
(或==
内部[[
)进行字符串比较,为此使用引号就足够了:
[ "$check1" = "[[FAILED]" ]
[[ "$check1" = "[[FAILED]" ]]