2015-12-07 1 views

ответ

2

Это потому, что precendence операторов, а потому mark не оценивали сам (в математике -смысле из evaulation).

echo $(($mark/$nb)) сначала заменяется на $((10+10/2)), который затем оценивается в 10+5, который является 5.

Есть множество решений этой проблемы, например:

echo $((mark/nb) 
echo $((($mark)/$nb)) 
1

Попробуйте вместо этого:

#!/bin/bash 

mark=$((10+10)) 
nb=2 

echo $mark 
echo $(($mark/$nb)) 

причина в том, что при назначении 10 + 10 результат не рассчитывается. Вместо этого 10 + 10/$ nb выполняется в последней строке. И, конечно, результат - 15.

+2

'Эхо $ ((($ марка)/$ пь))' также работает. –

Смежные вопросы