Seperti yang dikatakan Thomas Dickey, semua shell POSIX (mis., Hampir semuanya) akan memilikinya $?
.
Pertanyaan ini cukup menarik bagi saya, jadi saya mengujinya pada shell apa pun yang bisa saya dapatkan:
mksh
zsh
/bin/sh
pada Samsung Galaxy S5 saya
/bin/sh
di router saya
tcsh
ksh
dash
/bin/sh
pada Sistem V UNIX virtual saya dari tahun 1989 atau lebih
cmd.exe
dan powershell.exe
di komputer Windows 10 saya
dan $?
bekerja di semua ini tetapi fish
dan cmd.exe
.
Ditemukan dua hal menarik:
1. $?
berfungsi di Windows PowerShell!
Ya, to the point. Alih-alih mengembalikan 0 atau angka yang lebih tinggi, itu hanya True
dan 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. $?
tidak bekerja di shell fish
.
Namun, saat Anda mengetikkan $?
ikan, Anda mendapatkan pesan ini:
~$ echo $?
$? is not the exit status. In fish, please use $status.
fish: echo $?
Saya belum sering menggunakannya tetapi saya tidak terkejut, fish
sepertinya memiliki bahasa shell yang menarik, sangat berbeda dari bash
atau apa pun.