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.exe
ve powershell.exe
Windows 10 bilgisayarımda
ve $?
bu ancak tüm çalıştı fish
ve 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 True
ve 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, fish
kendi ilginç kabuk diline sahip gibi görünüyor, tamamen farklı bash
ya da her neyse.