Comme l'a dit Thomas Dickey, n'importe quel shell POSIX (c'est-à-dire à peu près tous) en aura $?
.
Cette question m'a beaucoup intéressé, alors je l'ai testé sur n'importe quel shell sur lequel je pouvais mettre la main:
mksh
zsh
/bin/sh
sur mon Samsung Galaxy S5
/bin/sh
sur mon routeur
tcsh
ksh
dash
/bin/sh
sur mon système UNIX virtuel V de 1989 environ
cmd.exe
et powershell.exe
sur mon ordinateur Windows 10
et a $?
travaillé dans tous ces mais, fish
et cmd.exe
.
Trouvé deux choses intéressantes:
1. $?
fonctionne dans Windows PowerShell!
Eh bien, jusqu'à un certain point. Au lieu de retourner 0 ou un nombre supérieur, c'est juste True
et False
.
PS C:\WINDOWS\system32> echo $?
True
PS C:\WINDOWS\system32> gfdhgfhfdgfdg
gfdhgfhfdgfdg : The term 'gfdhgfhfdgfdg' is not recognized as the name of a cmdlet, ...(big long error output).....
PS C:\WINDOWS\system32> echo $?
False
2. $?
ne fonctionne pas dans le shell fish
.
Cependant, lorsque vous tapez $?
du poisson, vous obtenez ce message:
~$ echo $?
$? is not the exit status. In fish, please use $status.
fish: echo $?
Je ne l'ai pas beaucoup utilisé mais je ne suis pas surpris, fish
semble avoir son propre langage shell intéressant, complètement différent bash
ou autre.