Thomas Dickey'in dediği gibi, herhangi bir POSIX kabuğu (yani hemen hemen hepsi) sahip olacak $?.
Bu soru beni biraz ilgilendirdi, bu yüzden ellerimi alabileceğim herhangi bir kabukta test ettim:
mksh
zsh
/bin/sh Samsung Galaxy S5 cihazımda
/bin/sh yönlendiricimde
tcsh
ksh
dash
/bin/sh 1989'dan itibaren sanal UNIX Sistem V'imde
cmd.exeve powershell.exeWindows 10 bilgisayarımda
ve $?bu ancak tüm çalıştı fishve cmd.exe.
İki ilginç şey buldu:
1. $?Windows PowerShell'de çalışır!
Bir noktaya. 0 veya daha yüksek bir sayı döndürmek yerine, sadece Trueve 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. $?kabukta çalışmıyor fish.
Ancak, $?balık yazdığınızda şu mesajı alırsınız:
~$ echo $?
$? is not the exit status. In fish, please use $status.
fish: echo $?
Çok fazla kullanmadım ama şaşırmadım, fishkendi ilginç kabuk diline sahip gibi görünüyor, tamamen farklı bashya da her neyse.