2

Я наткнулся на скрипт оболочки, где echo $? использовался. Что это значит . Как мы можем использовать это в сценарии оболочки. Есть ли ссылки для этого.

2 ответа2

4

echo $? означает статус вашей предыдущей команды

посмотрите пример здесь

[root@localhost ~]# jk
-bash: jk: command not found
[root@localhost ~]# echo $?
1
[root@localhost ~]# pwd
/root
[root@localhost ~]# echo $?
0
[root@localhost ~]# 

Сначала вы получаете 1, потому что команда неверна И во второй раз вы получаете 0, потому что команда была успешной

Нет команды с именем jk (в моем случае)

1

$? возвращает результат последней команды запуска в оболочке bash (и, возможно, другой)

Из http://tldp.org/LDP/abs/html/exit-status.html пример 6-1:

#!/bin/bash

echo hello
echo $?    # Exit status 0 returned because command executed successfully.

lskdf      # Unrecognized command.
echo $?    # Non-zero exit status returned -- command failed to execute.

echo

exit 113   # Will return 113 to shell.
           # To verify this, type "echo $?" after script terminates.

#  By convention, an 'exit 0' indicates success,
#+ while a non-zero exit value means an error or anomalous condition.
#  See the "Exit Codes With Special Meanings" appendix.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .