Я наткнулся на скрипт оболочки, где 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.
