Anda dapat menemukan definisi -ltdan -gtdalam dokumentasi testperintah ( man test), atau dalam dokumentasi bash karena testmerupakan perintah bawaan di bash (seperti di sebagian besar shell lainnya).
-ltdan -gtmerupakan perbandingan numerik (kurang dari [dan tidak sama], lebih besar dari [dan tidak sama]). Ada juga operator yang kurang / lebih besar atau sama -ledan -ge, dan operator yang sama dan tidak sama -eqdan -ne. Ini adalah operator numerik, sehingga akan ada kesalahan jika kedua belah pihak bukan angka, dan 9dianggap kurang dari 10.
Alasan mengapa nama seperti -ltdigunakan daripada biasanya <adalah karena karakter <tersebut akan ditafsirkan sebagai pengalihan. Operator =dan !=juga ada, tetapi mereka melakukan perbandingan string: test 00 -eq 0benar sedangkan test 00 = 0salah.
Beberapa shell, termasuk bash, juga memiliki operator <dan >yang melakukan perbandingan leksikografis string, jadi test 9 \< 10salah karena 9diurutkan 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.
echopernyataan dalam kode menjawab pertanyaan Anda.