Сценарий Bash печатает выражение вместо результата

Это всего лишь пара месяцев, что не является чем-то необычным в истории коммитов pcc . Возможно, у вас нереалистичные ожидания относительно деятельности по разработке PCC.

0
05.09.2021, 07:37
1 ответ

Ну, что делает echo, так это печатает строки, переданные в качестве аргументов. Как эхо звучит, как исходные звуки возвращаются.

echo foo barпечатает foo bar; echo "$var"печатает содержимое$var(после того, как оболочка расширила значение ); и echo "$1 \* $#"печатает 10 \* 2, если это значения $1и $#. (Звездочка не используется в двойных -кавычках, поэтому обратная косая черта не удаляется.)

Возможно, вы перепутали это с expr, которое могло выполнять арифметические действия.

Но нет необходимости во внешней команде для арифметических операций в оболочке, просто используйте арифметическое расширение $((.. )), например.:

r=$(( $1 * $# ))

но обратите внимание, что если $1содержит что-то еще, кроме чисел, результаты могут быть нечетными (или даже выполнять произвольные команды, встроенные в $1, по крайней мере, в Bash ). Для серьезной работы вы можете сначала проверить значение там на работоспособность.

5
05.09.2021, 10:10

Теги

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