что такое $? означает в сценарии оболочки?

Я столкнулся с сценарием оболочки, который содержит инструкцию вроде:

if [ $val -eq $? ]

Что такое $? значит здесь?

Ответ 1

$?

возвращает статус последней законченной команды. Состояние 0 сообщает, что все закончилось нормально.

Кроме того, знак $ является специальным символом - и в этом случае $val извлекает значение, которое удерживается переменной val

Ответ 2

$#= количество аргументов. Ответ 3.

[email protected]= какие параметры были переданы. Ответ 1 2 3.

$? = Последняя команда была успешной. Ответ 0 что означает "да".

Ответ 3

Я обнаружил, что ссылка очень полезна и является отличным ответом. Он включает четкое выражение с образцом.

enter image description here

Ответ 4

Что такое $? значит здесь?

$? является последним результатом статуса выхода... 0 по умолчанию является "успешным"

bash# ls *.*
bash# echo $? 
bash# 0
bash# ls /tmp/not/existing/
bash# echo $?
bash# 2

Ответ 5

Это значение статуса выхода предыдущей команды. Это 0 в случае успеха.

Ответ 6

ls *.* или ls даст тот же результат. Значение показывает ноль или более файлов с любым расширением в текущем каталоге.

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