$?
expande para o status de saída do pipeline de primeiro plano executado mais recentemente. Consulte a seção Parâmetros especiais do manual do Bash .
Em termos mais simples, é o status de saída do último comando.
Ao passar por um script de shell, vi o termo "$?". Qual é o significado deste termo?
$?
expande para o status de saída do pipeline de primeiro plano executado mais recentemente. Consulte a seção Parâmetros especiais do manual do Bash .
Em termos mais simples, é o status de saída do último comando.
resposta do Cjm está correto, mas $?
pode ser usado de maneira tola em scripts de shell, e eu gostaria de alertar contra isso. Muitos scripts de shell ruins possuem um padrão repetido de código:
run_some_command
EXIT_STATUS=$?
if [ "$EXIT_STATUS" -eq "0" ]
then
# Do work when command exists on success
else
# Do work for when command has a failure exit
fi
Se possível (questões de legibilidade às vezes se intrometem), você deve codificar essa situação de maneira diferente:
if run_some_command
then
# Do work when command exists on success
else
# Do failure exit work
fi
Este último uso é mais rápido, não contamina o namespace de variável do shell com o que equivale a variáveis temporárias, pode ser muito mais legível para humanos e encoraja o uso de "lógica positiva", a prática de escrever condicionais sem negações, que tem simplicidade cognitiva na maioria das situações. Isso acaba com o uso de $?
na maior parte.
Além do que cjm dito , se o valor de $?
for 0, o processo anterior terminou normalmente (ou com sucesso). Caso contrário, houve algum erro.
$?
-O status de saída do último comando executado.
$0
-O nome do arquivo do script atual.
$#
-O número de argumentos fornecidos para um script.
$$
-O número do processo do shell atual. Para scripts de shell, esse é o ID do processo sob o qual eles estão sendo executados.
$? nos fornecer o status de execução do último comando execute no prompt. O valor '0' denota que o comando foi executado com sucesso e '1' por não ter sucesso.
$?
determina o status de saída do comando executado. $
seguido por números (por exemplo, $1
, $2
, etc.) representa os parâmetros no script de shell.
Tags linux shell-script