Dalam artikel pengantar bash kami, kami mengetahui bahwa file skrip shell berisi daftar perintah yang akan dieksekusi oleh penerjemah shell. Dalam artikel ini mari kita tinjau tentang perintah shell dan internalnya.
Perintah adalah rangkaian kata. Kata pertama menunjukkan perintah yang akan dieksekusi dan kata-kata yang tersisa dilewatkan sebagai argumen, di mana argumen bisa menjadi opsi atau parameter untuk perintah tersebut.
Beberapa perintah Unix umum yang Anda jalankan di baris perintah adalah perintah shell. Misalnya, perintah ls, lpr dan grep.
$ ls -alF $ lpr filename $ grep "string" filename
Status Keluar Perintah Shell
Nilai kembalian suatu perintah adalah status keluarnya, atau 128 + N jika perintah diakhiri dengan sinyal N. Status keluar digunakan untuk memeriksa hasil (berhasil/gagal) eksekusi perintah. Jika status keluar adalah nol, maka perintah berhasil. Jika perintah gagal, status keluar akan menjadi bukan nol.
Nilai Keluar | Status Keluar |
---|---|
0 (Nol) | Sukses |
Bukan nol | Kegagalan |
2 | Penggunaan salah |
127 | Perintah Tidak ditemukan |
126 | Tidak dapat dieksekusi |
$? Variabel Shell
Nama variabel shell $? adalah variabel bawaan khusus yang memiliki status keluar dari perintah terakhir yang dijalankan.
- Setelah eksekusi fungsi shell, $? mengembalikan status keluar dari perintah terakhir yang dijalankan dalam suatu fungsi.
- Setelah eksekusi skrip shell, $? mengembalikan status keluar dari perintah terakhir yang dijalankan dalam skrip.
Contoh Skrip Shell yang Menjelaskan Status Keluar Perintah Shell
Skrip shell exitstatus.sh berikut menunjukkan contoh berbagai status keluar perintah shell.
$ cat exitstatus.sh #! /bin/bash echo -e "Successful execution" echo -e "=====================" echo "hello world" # Exit status returns 0, because the above command is a success. echo "Exit status" $? echo -e "Incorrect usage" echo -e "=====================" ls --option # Incorrect usage, so exit status will be 2. echo "Exit status" $? echo -e "Command Not found" echo -e "=====================" bashscript # Exit status returns 127, because bashscript command not found echo "Exit status" $? echo -e "Command is not an executable" echo -e "=============================" ls -l execution.sh ./execution.sh # Exit status returns 126, because its not an executable. echo "Exit status" $?
Sekarang, jalankan exitstatus.sh di atas untuk melihat berbagai patung keluar yang diberikan oleh contoh skrip shell.
$ bash exitstatus.sh Successful execution ===================== hello world Exit status 0 Incorrect usage ===================== ls: unrecognized option `--option' Try `ls --help' for more information. Exit status 2 Command Not found ===================== exitstaus.sh: line 15: bashscript: command not found Exit status 127 Command is not an executable ============================= -rw-r--r-- 1 root root 659 Mar 9 13:36 execution.sh exitstatus.sh: line 21: ./execution.sh: Permission denied Exit status 126
Catatan:Memeriksa nilai balik dari suatu fungsi atau perintah adalah salah satu tanggung jawab utama seorang programmer. Ini harus menjadi kebiasaan Anda saat menulis kode apa pun.