Создание скрипта, тестирующего оболочку [закрыто]

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

  printf "********************* TEST Arithmetics  ... .\nYou should see the number 4096 below "
    #read _
    valgrind --leak-check=yes ./shell .<< EOF
    $((64 * 64))
    EOF

Результат: не удалось выполнить 4096: (2: No such file or directory)

= правильный ответ, конкатенированный с ошибкой.

Выражение $((64 * 64)) оценивается, если я запускаю тест, но я также получаю сообщение об ошибке. Странно то, что я получаю это сообщение об ошибке, только если запускаю проект из JetBrain Clion, я не получаю его в терминале, если запускаю оболочку в терминальном режиме, а не автоматизирую тесты против него.

$ $((64 * 64))
Result = 4096
$ 

Как вы думаете, ошибка в тесте или в оболочке?

-2
задан 7 May 2016 в 13:50

1 ответ

$(( 64*64 )) будет буквально помещать 4096 на командную строку и говорить, идти вперед и выполнять его. Следовательно ошибка

 failed to execute 4096: (2: No such file or directory)

, Если Вы просто хотите выполнить вычисления без печати, удалите $. Если Вы действительно хотите распечатать, используйте echo $(( 64*64))

2
ответ дан 7 May 2016 в 23:50
  • 1
    это означает точно, как указан. Однако средство обновления сделает обновление, Вы не можете изменить его. – ravery 19 October 2017 в 22:12

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

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