проблема состояния при проверке ошибок в лог-файле скрипта bash - PullRequest
0 голосов
/ 26 октября 2019

Я пытаюсь проверить ошибку с count2, какой код ниже

DAY=`TZ=GMT-3 date "+%Y-%m-%d %H"`

count2=$(cat $source_dir/xx.log |grep $check_str|grep "$DAY" | wc -l)

if [[ 3 -gt $count2 ]]
then
echo "$count2"
else
echo "works"

, когда я работаю в режиме sh -x, вывод:

++ grep '2019-10-26 04'
++ wc -l
+ count2=385
+ [[ 3 -gt 385 ]]
+ echo works

почему возникает условиееще? altought 3 не дает 385?

1 Ответ

0 голосов
/ 26 октября 2019
if [[ 3 -gt $count2 ]] # with count2 being 385
then
echo "$count2"
else
echo "works"

Почему условие входит иначе, хотя 3 не больше 385 (перефразировано, чтобы, надеюсь, сделать более понятным)?.

Входит в else точно потому что 3 не больше 385. Ваше условие проверяет, если 3 > 385, выполняет бит then, если он делает, или выполняет бит else, если это не так. Это так, как и ожидалось (в любом случае из кода, даже если это не то, что вы ожидали).


Возможно, вы хотели поставить условие в противоположноеСмысл, трудно сказать по твоему вопросу. Если это это случай, это будет $count2 -gt 3.

...