星 «Звезда» 1999

Код завершения

В терминале: zvezda learn exitcode. Урок покажет карточку и завершится; сделайте шаг и снова запустите урок - он проверит и покажет следующую.

Шаг 1 из 3

Дарья: Кэндзи записал: «программа не только печатает - она ещё и сообщает, как всё прошло, числом: кодом завершения. 0 - успех; что значит другое число, решает сама программа». Код последней команды лежит в $?. Бросьте кубик - число он не печатает, ответ только в коде:

zv-dice
echo $?
echo $? - сразу после кубика, иначе увидите код другой команды.

Шаг 2 из 3

Дарья: Я сначала думала, что $? помнит кубик. Проверьте - запустите строку целиком:

zv-dice; ls; echo $?

Шаг 3 из 3 (продолжение)

Дарья: Основа пройдена - хватит для задания 17. Дальше - как код используют в одной строке. && - «если получилось», || - «если не получилось». Например (запускать не нужно):

mkdir data && cd data          - перейти в папку, только если она создалась
cd nowhere || echo "нет папки" - сообщение, только если cd не удался

А это запустите:

zv-dice && echo ok || echo fail

Шпаргалка

echo $?        - код последней команды (сразу после неё!)
0 - успех; что значит другое число - решает программа
a && b         - b, только если a успешна (mkdir data && cd data)
a || b         - b, только если a не удалась (cd nowhere || echo "нет")
задание 17: pokeberu, сразу echo $?