echo 1> «runcount.txt» не записывает в файл

Я пытаюсь вести подсчет того, сколько раз мой сценарий оценивает конкретное условие как истинное, и хочу, чтобы его счет записывался в отдельный файл.

Ниже приведено соответствующее содержимое моего file.

#!/bin/bash
IFS=$'\n'
status=$(getstatus) #command which returns status
if [[ $status != *"RUNNING"* ]]; then
        echo 1 > "runcount.txt"
fi

Однако я не вижу 1, записанного в runcount.txt , и также не вижу ошибок на консоли. Любая помощь, чтобы исправить это было бы очень здорово.

Спасибо

0
задан 17 June 2020 в 15:15

1 ответ

Я предполагаю, что в 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 () для вашей версии.

2
ответ дан 19 June 2020 в 21:23

Другие вопросы по тегам:

Похожие вопросы: