Арифметическая синтаксическая ошибка с числовой переменной

У меня возникают трудности с арифметической синтаксической ошибкой.

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

NUM=$(wc -l "$text") 

а затем я хочу проверить, является ли NUM нечетным или нет.

Поэтому я положил,

 REMAINDER=$(( $NUM % 2 )) if [ $REMAINDER -ne 0 ] ; then echo "Odd number" fi 

Однако, похоже, что существует проблема с

 REMAINDER=$(( $NUM % 2 )) 

$ NUM, похоже, не рассматривается как число, а файл .txt. Когда я проверил NUM сам по себе, и он отлично работал …

One Solution collect form web for “Арифметическая синтаксическая ошибка с числовой переменной”

Если вы печатаете $NUM , после

 NUM=$(wc -l "$text") 

вы, вероятно, увидите (в Linux) номер и имя файла в одной строке с некоторыми пробелами.

Например:

 1842 basic.c 

Эта строка не является числом, и вы обычно читаете только первый токен с вашим выбором shell / sed / awk и т. Д., Чтобы использовать это как число.

@steeldriver предлагает это для получения только числа:

 NUM=$(wc -l < "$text") 

который работает (протестирован с Debian).

  • Убедитесь, что $ REPLY находится в диапазоне номеров
  • Почему $ ((40-35)) превращается в 5?
  • TCSH побитовый | оператор
  • Как вычесть два раза в оболочке
  • Инкрементная арифметика Sed
  • Как работает арифметика Баша?
  • grepping переменная и добавление 1 к ней
  • Переменные целочисленного типа в Bash?
  • Перебирайте строки файла, файла раздела и классифицируйте каждый раздел
  • Скрипт с несколькими арифметическими условиями не работает
  • Арифметический расчет по ряду для нефиксированного номера столбца
  • Interesting Posts

    Как сделать пароль sudo автоматически автоматически, не запрашивая его?

    Почему я не могу зеркально отразить веб-сайт (используя wget)?

    как удалить последнюю черту пути каталога?

    Могу ли я установить FreeBSD, OpenBSD, NetBSD и DragonFly на один диск?

    Проверка сценария оболочки с помощью моделирования терминала

    список доступных сетевых интерфейсов удаленного хоста (без SSH)?

    Коэффициенты Regex не работают с локацией

    Вставить пробел между цифрой и алфавитом в определенном столбце

    Как проверить локальный пакет dsc (нужно проверить «раздел», «приоритет»)

    Загрузите файл образа NTFS, созданный с помощью partimage

    Как перенести все файлы с определенным расширением файла из подкаталогов в один каталог

    Запрос терминала отображается поверх

    Yum или Reposync: Как я могу медленно удалить репозиторий без непреднамеренных проблем с зависимостями?

    Удалить запятую между кавычками только в файле с разделителями-запятыми

    В то время как целые целые числа

    Linux и Unix - лучшая ОС в мире.