Anda dapat menemukan definisi -lt
dan -gt
dalam dokumentasi test
perintah ( man test
), atau dalam dokumentasi bash karena test
merupakan perintah bawaan di bash (seperti di sebagian besar shell lainnya).
-lt
dan -gt
merupakan perbandingan numerik (kurang dari [dan tidak sama], lebih besar dari [dan tidak sama]). Ada juga operator yang kurang / lebih besar atau sama -le
dan -ge
, dan operator yang sama dan tidak sama -eq
dan -ne
. Ini adalah operator numerik, sehingga akan ada kesalahan jika kedua belah pihak bukan angka, dan 9
dianggap kurang dari 10
.
Alasan mengapa nama seperti -lt
digunakan daripada biasanya <
adalah karena karakter <
tersebut akan ditafsirkan sebagai pengalihan. Operator =
dan !=
juga ada, tetapi mereka melakukan perbandingan string: test 00 -eq 0
benar sedangkan test 00 = 0
salah.
Beberapa shell, termasuk bash, juga memiliki operator <
dan >
yang melakukan perbandingan leksikografis string, jadi test 9 \< 10
salah karena 9
diurutkan sebelumnya 1
(backslash mencegah karakter <
ditafsirkan sebagai operator redirection). Kerang ini juga menawarkan sintaks braket ganda untuk pengujian, misalnya [[ 9 < 10 ]]
(yang bertentangan dengan [ 9 \< 10 ]
), yang tidak dapat memiliki pengalihan di dalam sehingga <
tidak perlu dikutip.
echo
pernyataan dalam kode menjawab pertanyaan Anda.