Em um shell linux, o que é echo $? deveria fazer?

2

Me deparei com um script de shell em que echo $? foi usado. O que isto significa . Como podemos usar isso em um script de shell. Há alguma referência para isso?

    
por Rudra 23.02.2013 / 06:26

2 respostas

4

echo $? significa status do seu comando anterior

veja o exemplo aqui

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

No começo você está recebendo 1 porque o comando está errado E na segunda vez você está recebendo 0 porque o comando foi bem sucedido

Não existe um comando chamado jk (no meu caso)

    
por 23.02.2013 / 06:40
1

$? retorna o resultado do último comando de execução em um shell bash (e provavelmente outro).

De link exemplo 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.
    
por 23.02.2013 / 06:42