Команда не найдена, отображается вместе с правильным статусом выхода в командной консоли. Как это можно исправить? - PullRequest
0 голосов
/ 26 апреля 2019

Я выполняю $?на виртуальной машине RHEL после команды date или pwd.Я вижу, что выходное состояние корректно, но оно также возвращает ошибку «команда не найдена».

Пробовал поиск решения, но я не нашел правильного решения.

Вот так это выглядит:

[root@xxxxxx yyyy]# pwd
/homes/yyyy
[root@xxxxxx yyyy]# $?
bash: 0: command not found

Отображается только состояние выхода.Никакая другая ошибка не отображается при выполнении $?команда.

Ответы [ 2 ]

1 голос
/ 26 апреля 2019

Вы должны написать echo $?, поскольку $? не является самой командой оболочки, а является переменной (значением).

0 голосов
/ 26 апреля 2019

"$?" это не команда, это параметр оболочки, который расширяется до состояния завершения последнего выполненного переднего плана конвейера. Таким образом, вы можете передать его в качестве параметра любой функции, обработать или сохранить в переменной для дальнейшего использования.

Вы можете получить информацию о специальных параметрах оболочки по ссылке ниже https://www.gnu.org/software/bash/manual/html_node/Special-Parameters.html#Special-Parameters

[root@xxxxxx yyyy]# pwd
/homes/yyyy
[root@xxxxxx yyyy]# echo $?

or 
[root@xxxxxx yyyy]# VAR1=$?
[root@xxxxxx yyyy]# echo $VAR1
...