Почему код выхода равен 0, хотя команда неверна?

Большое спасибо Марку Плотнику за это!

macOS Sierra, Эль-Капитан, Йосемити

Choose Apple menu () > System Preferences, then click Users & Groups.
Click lock, then enter an administrator name and password. 
From the list of users, Control-click or right-click the user that you want to rename. Choose Advanced Options from the shortcut menu.
Change the name in the “Full name” field, then click OK.
0
11.06.2020, 17:16
1 ответ

В вашем коде в операторе ifстатус выхода, который печатается , является статусом выхода теста [[ ${?} -ne 0 ]]. Значение $?всегда является статусом выхода самой последней выполненной команды, и тест считается командой, по крайней мере, в том, что касается установки значения $?для его результата.

Если вы хотите распечатать статус выхода id, назначьте его переменной, значение которой не изменится,

id -uns
err=$?

if [[ $err -ne 0 ]]; then
    printf 'id failed with code %d\n' "$err" >&2
    exit 1
fi
7
28.04.2021, 23:16

Теги

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