[
adalah perintah shell builtin di bash dan di zsh:
$ type [
[ is a shell builtin
Dari dokumentasi Perintah Shell Builtin :
Perintah builtin terdapat di dalam shell itu sendiri . Ketika nama perintah builtin digunakan sebagai kata pertama dari perintah sederhana (lihat Perintah Sederhana ), shell mengeksekusi perintah secara langsung, tanpa memanggil program lain. Perintah builtin diperlukan untuk mengimplementasikan fungsionalitas yang tidak mungkin atau tidak nyaman untuk didapatkan dengan utilitas terpisah.
Dokumentasi resmi ( $ help test
) hanya memungkinkan untuk menggunakan =
:
STRING1 = STRING2
Benar jika senarnya sama.
Jadi, ungkapan yang benar adalah:
$ [ "a" = "a" ] && echo yes
yes
Apa yang terjadi adalah bahwa bash agak kurang ketat. Mendukung ==
operator dengan [
tampaknya merupakan ekstensi bash dan tidak disarankan untuk menggunakannya:
string1 == string2
string1 = string2
Benar jika senarnya sama. Ketika digunakan dengan perintah [[, ini melakukan pencocokan pola seperti dijelaskan di atas (lihat Conditional Constructs ).
'=' harus digunakan dengan perintah tes untuk kesesuaian POSIX.
Jika Anda ingin menggunakan ==
, Anda harus menggunakan [[
kata kunci:
$ [[ "a" == "a" ]] && echo yes
yes
Ingatlah bahwa [[
itu kurang portabel (bukan POSIX). Tapi bash dan zsh mendukungnya.
$PATH
dicari. dan==
bukantest
sintaks yang valid untuk/usr/bin/[
anway. Baik=
-baik saja.