История изменений
Исправление vodz, (текущая версия) :
верный вариант. (( )) - для чисел и математических операций [[ ]] - для строк
Глупости какие. Если у вас два выражения, одно целочисленное, другое - строковое, то вы всё равно всё заключите в [[ ]], и сразу возникает вопрос, накой (( )) вообще. Нет, я знаю, где (()) удобен, например, в [[ ]] нельзя красиво сделать ((булевое ? целочисленное1 : целочисленное2)). А втыкание (()) внутри [[ ]] зачастую от незнания, что для целочисленных выражений ни $, ни лишние скобки нафиг не нужны. Сравните:
declare -i i1 i2
.....
if [[ i1+i2 -eq REAL+INT ]]; then
...
Исправление vodz, :
верный вариант. (( )) - для чисел и математических операций [[ ]] - для строк
Глупости какие. Если у вас два выражения, одно целочисленное, другое - строковое, то вы всё равно всё заключите в [[ ]], и сразу возникает вопрос, накой (( )) вообще. Нет, я знаю, где (()) удобен, например, в [[ ]] нельзя красиво сделать ((булевое ? целочисленное1 : целочисленное2)). А втыкание (()) внутри [[ ]] зачастую от незнания, что для целочисленных выражений ни $, ни нафиг не нужны. Сравните:
declare -i i1 i2
.....
if [[ i1+i2 -eq REAL+INT ]]; then
...
Исходная версия vodz, :
верный вариант. (( )) - для чисел и математических операций [[ ]] - для строк
Глупости какие. Если у вас два выражения, одно целочисленное, другое - строковое, то вы всё равно всё заключите в [[ ]], и сразу возникает вопрос, накой (( )) вообще. Нет, я знаю, где (()) удобен, например, в [[ ]] нельзя красиво сделать ((булевое ? целочисленное1 : целочисленное2)). А втыкание (()) внутри [[ ]] зачастую от незнания, что для целочисленных выражений ни $, ни нафиг не нужны. Сревните:
declare -i I1 i2
.....
if [[ i1+i2 -eq REAL+INT ]]; then
...