LINUX.ORG.RU

очевидно что вы не понимаете почему, потому что не доразобрались

rust_afari
()

Я-то думал, тут про модераторский беспредел, а тут...

Про предекременты, по-моему, даже на башорге шутка была лет 10 назад.

kravzo ★★
()

Потому что -eq для арифметического сравнения и перед сравнением он проводит действия с обеих сторон, в данном случае минусует вербос.

entefeed ☆☆☆
()
user@localhost ~ $ verbose=1
user@localhost ~ $ echo $verbose
1
user@localhost ~ $ [[ --verbose -eq --verbose ]]
user@localhost ~ $ echo $verbose
-1
user@localhost ~ $ [[ --verbose -eq --verbose ]]
user@localhost ~ $ echo $verbose
-3
user@localhost ~ $ [[ 0 -eq --verbose ]]
user@localhost ~ $ echo $verbose
-4
user@localhost ~ $ [[ 0 -eq ++verbose ]]
user@localhost ~ $ echo $verbose
-3
user@localhost ~ $ [[ ++verbose -eq ++verbose ]]
user@localhost ~ $ echo $verbose
-1
Deleted
()
Ответ на: комментарий от KRoN73

Вот то, что оно и в кавычках работает — это круто :)

Но и тут не обошлось без приколов:

$ verbose=0
$ v="--verbose"
$ echo "verbose=$verbose v=$v"
verbose=0 v=--verbose
$ [[ "$v" -eq 0 ]]
$ echo "verbose=$verbose v=$v"
verbose=-1 v=--verbose
$ verbose=0
$ [[ '$v' -eq 0 ]]
bash: [[: $v: syntax error: operand expected (error token is "$v")
$ verbose=0; v="--verbose"
$ echo $((--v))
-2
$ echo "verbose=$verbose v=$v"
verbose=-1 v=-2
$ verbose=0; v="--verbose"
$ echo $((--$v))
-1
$ echo "verbose=$verbose v=$v"
verbose=-1 v=--verbose

vodz ★★★★★
()

Потому что bash — дерьмо состоящее из непредсказуемых костылей и не пригоден для большего, чем пайпнуть две прожки.

anonymous
()
Ответ на: комментарий от anonymous

Ну согласен! На баше можно пайпнуть хоть дюжину прожек!

legolegs ★★★★★
()
Ответ на: комментарий от KRoN73

Вот то, что оно и в кавычках работает — это круто :)

+1

Deleted
()
Ответ на: комментарий от melkor217

Они начали что-то подозревать.

anonymous
()
Ответ на: комментарий от KRoN73

Можно вообще так:

$ verbose=0
$ HISTCMD="--verbose -0"
$ echo $verbose
-1
monk ★★★★★
()

Потому что нужно было брать язык программирования (Python), а не говно (Bash).

EXL ★★★★★
()

Почему он выполняет код в кавычках?

Баш конечно говно, но не настолько же?! Интересуют причины такого поведения.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

Почему он выполняет код в кавычках?
Интересуют причины такого поведения.

Потому что «[[» это не команда, а синтаксическая конструкция. Для «[» так интерпретироваться не будет. А поведение для численных сравнений типа -eq в виде исполнения арифметических целочисленных вычислений более логичное, ведь при этом оно не допускает строки.

vodz ★★★★★
()
Последнее исправление: vodz (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

Ага, только вот от баша и сх пока все равно никуда не деться. Но то что его пора выкидывать это точно.

entefeed ☆☆☆
()

Кто бы тут еще и рассказал - в чем сыр-бор?
Т.е. что эта строчка означает?
Баш учить не буду. Просто хочется узнать в чем прикол и принять к сведению. (c)

Crocodoom ★★★★★
()
Ответ на: комментарий от Crocodoom

Прикол в том, что баш бородат и стар аки Гендальф и умеет с помощью древней магии минусовать строки арифметически :-)

Twissel ★★★★★
()

потому что -eq для числовых значений. желаешь сравнивать строки - == или !=

ananas ★★★★★
()
Ответ на: комментарий от entefeed

А чо, в предсказатели допускаются только написавшие веб-сервера на баше?

Почему? Нырковым головожопам тоже можно.

ashot ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.