Почему делает a=0; позвольте ++, возвращают код выхода 1?

Как насчет того, чтобы использовать меньше команды... EX:

 ls -l | less -CM
16
13.04.2017, 15:36
1 ответ

От help let:

Exit Status:
If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise..

С тех пор var++ постинкремент, я предполагаю, что последний аргумент действительно оценивает для обнуления. Тонкий...

Возможно, более четкая иллюстрация:

$ let x=-1 ; echo x=$x \$?=$?
x=-1 $?=0
$ let x=0 ; echo x=$x \$?=$?
x=0 $?=1
$ let x=1 ; echo x=$x \$?=$?
x=1 $?=0
$ let x=2 ; echo x=$x \$?=$?
x=2 $?=0
19
27.01.2020, 19:48
  • 1
    хорошее место. я предполагаю ++, действовал бы то же как + = 1 затем –  Sirex 21.02.2012, 11:07
  • 2
    Да, это работает. –  l0b0 21.02.2012, 11:10
  • 3
    Для записи это поведение является тем же на моем ksh88 экземпляре (хотя постинкремент let a++ не работает) –  rahmu 21.02.2012, 12:42
  • 4
    Спасибо, которое помогло мне. - И я не буду больше тратить впустую время и спрашивать: "Почему?" –  not-a-user 29.07.2014, 13:23

Теги

Похожие вопросы