У меня есть программа на C, которая помещает одно уникальное значение в тестовый файл (это будет двузначное число). Теперь я хочу запустить скрипт оболочки, чтобы прочитать это число, а затем сравнить с моим требуемым числом (например, 40).

Сравнение должно давать "равно" или "больше".

Например: вывод программы на C записывается в файл c.txt со значением 36, и я хочу сравнить его с числом 40.

Поэтому я хочу, чтобы это сравнение было "равно" или "больше", а затем отображало значение "равно" или "больше".

1 ответ1

3

Это довольно просто, но если вы не укажете больше, я не знаю, что еще добавить.

Просто прочитайте первую строку из файла, сохраните его как переменную и используйте простые сравнения, такие как -gt (больше чем) или -eq (равно), чтобы получить желаемый результат. Конечно, вы можете переключать $val и $comp здесь, в зависимости от того, что вы действительно хотите.

#!/usr/bin/env bash
val=$(< c.txt)
comp=$1
if [[ "$val" -gt "$comp" ]]
  then echo "greater"
elif [[ "$val" -eq "$comp" ]]
  then echo "equal"
fi

Здесь c.txt - ваш входной файл, и предполагается, что он содержит только одну строку. Значение, с которым вы сравниваете, читается как аргумент, поэтому вы должны вызывать этот скрипт как:

./script.sh 40

В любом случае, я настоятельно рекомендую прочитать Руководство по написанию сценариев Bash.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .