LINUX.ORG.RU

История изменений

Исправление 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
...
с реализацией через (()) - насколько пример красивее и нагляднее без кучи скобок.