У меня есть сценарий с:Баш вычислить средний доход плохой ответ
#!/bin/bash
mark=10+10
nb=2
echo $mark
echo $(($mark/$nb))
Я не понимаю, почему второе эхо возвращения 15.
У меня есть сценарий с:Баш вычислить средний доход плохой ответ
#!/bin/bash
mark=10+10
nb=2
echo $mark
echo $(($mark/$nb))
Я не понимаю, почему второе эхо возвращения 15.
Это потому, что precendence операторов, а потому mark
не оценивали сам (в математике -смысле из evaulation).
echo $(($mark/$nb))
сначала заменяется на $((10+10/2))
, который затем оценивается в 10+5
, который является 5
.
Есть множество решений этой проблемы, например:
echo $((mark/nb)
echo $((($mark)/$nb))
Попробуйте вместо этого:
#!/bin/bash
mark=$((10+10))
nb=2
echo $mark
echo $(($mark/$nb))
причина в том, что при назначении 10 + 10 результат не рассчитывается. Вместо этого 10 + 10/$ nb выполняется в последней строке. И, конечно, результат - 15.
'Эхо $ ((($ марка)/$ пь))' также работает. –
должен быть 'Эхо $ ((знак/пь))' – amdixon