[英]execute mailx using shell script
我正在嘗試運行以下腳本。
val = `wc -l /home/validate.bad | awk '{print $1}' | tail -n1`
valCount = `wc -l /home/validation.txt | awk '{print $1}'`
if [ "$val" -gt 1 ] && ["$valCount" -gt 1]
then
mailx -s "Validation failed" -r xyz@abc.com xyz@abc.com<<-EOF
Hi ,
Validation has failed. Please check.
EOF
elif [ "$valCount" -gt 1 ]
then
mailx -s "Validation pass" -r xyz@abc.com xyz@abc.com<<-EOF
Hi Team,
Validation success.
EOF
fi
但我收到此錯誤。
Error:
val: comand not found
valCount: command not found
line 3[: : integer expression expected
=
周圍不能有空格:
val = `wc -l /home/validate.bad | awk '{print $1}' | t` # wrong
並且應該是
val=`wc -l /home/validate.bad | awk '{print $1}' | t`
或最好
val=$(wc -l </home/validate.bad)
#`..` is legacy , $() supports nesting, one good reason to go for it
# You use awk and tail uselessly
也
["$valCount" -gt 1]
本來應該
[ "$valCount" -gt 1 ] # mind the spaces for the test constructie
# [spaceSTUFFspace] is the correct form
邊注
您可以使用[shellcheck]檢查腳本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.