Я пытаюсь вести подсчет того, сколько раз мой сценарий оценивает конкретное условие как истинное, и хочу, чтобы его счет записывался в отдельный файл.
Ниже приведено соответствующее содержимое моего file.
#!/bin/bash
IFS=$'\n'
status=$(getstatus) #command which returns status
if [[ $status != *"RUNNING"* ]]; then
echo 1 > "runcount.txt"
fi
Однако я не вижу 1, записанного в runcount.txt
, и также не вижу ошибок на консоли. Любая помощь, чтобы исправить это было бы очень здорово.
Спасибо
Я предполагаю, что в getstatus
вы получите строку. В этой строке вы хотите проверить, содержится ли подстрока RUNNING .
Я бы порекомендовал вам использовать grep.
#!/bin/bash
getstatus(){ echo Im RUNNING now; }
IFS=$'\n'
status=$(getstatus|grep -c RUNNING)
if [[ $status -gt 0 ]]; then
echo 1 > "runcount.txt"
fi
grep seaches для строки RUNNING . Опция -c
просто подсчитывает, как часто он появляется. Так что $ status
теперь является int. Если он появляется больше, чем никогда, он записывает 1. в ваш текстовый файл.
Пожалуйста, удалите testfunktion getstatus ()
для вашей версии.