Возвращаемое значение сохраняется в $?. 0 указывает на успех, другие указывают на ошибку.
some_command
if [ $? -eq 0 ]; then
echo OK
else
echo FAIL
fi
Как и любое другое текстовое значение, вы можете сохранить его в переменной для будущего сравнения:
some_command
retval=$?
do_something $retval
if [ $retval -ne 0 ]; then
echo "Return code was not zero but $retval"
fi
Для возможных операторов сравнения, см. man test.
Кажется, что здесь работает sudo su - [user],
$ sudo su - jerk
jerk ~ $ whoami
jerk
, хотя su manpage говорит, что - должен быть последним вариантом
When - is used, it must be specified as the last su option. The other forms (-l
and --login) do not have this restriction.
Если I попробуйте, чтобы я получил эти ошибки, но он по-прежнему работает для входа в систему как [пользователь]:
$ sudo su [user] -
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell
Работает ли sudo нормально? Может быть, он не работает ...?