Untuk memeriksa apakah skrip shell berhasil di pintasan Mac, tangkap status keluarnya segera setelah skrip berjalan dan teruskan angka tersebut kembali sebagai teks. Di Pintasan, tambahkan tindakan Jalankan Skrip Shell, lalu gunakan tindakan Jika untuk membuat percabangan berdasarkan nilai yang dikembalikan: 0 berarti berhasil menurut konvensi shell; nilai bukan nol menunjukkan kesalahan atau hasil tidak berhasil lainnya. Metode ini membuat statusnya eksplisit alih-alih berasumsi pintasan menyediakan variabel status tersendiri.

Tambahkan tindakan shell dan tangkap statusnya

Buka pintasan di app Pintasan di Mac Anda. Cari Jalankan Skrip Shell di perpustakaan tindakan dan tambahkan. Apple menjelaskan tindakan skrip shell sebagai bagian dari ekosistem Pintasan Mac, meskipun Petunjuk Pengguna Pintasan tidak mendokumentasikan setiap pengaturan atau detail versi untuk tindakan ini. Jika tidak ada di perpustakaan tindakan Anda, jangan menggantinya dengan tindakan Automator yang bernama serupa dan berasumsi tindakannya berperilaku identik; periksa tindakan yang tersedia di Mac Anda. Ringkasan Pintasan Apple

Di bidang skrip, letakkan perintah skrip dalam satu baris, lalu tangkap $? tepat di baris berikutnya. Misalnya, jika skrip dapat dieksekusi dan berada di jalur ilustratif yang ditunjukkan di bawah ini:

/Users/yourname/Scripts/refresh-files.sh >/dev/null
script_status=$?
printf '%s' "$script_status"

Ganti jalur contoh dengan jalur sebenarnya ke skrip Anda. Pengalihan tersebut mengirimkan output standar skrip ke /dev/null, sehingga output teks tindakan hanya berisi angka status. Hapus >/dev/null jika Anda juga menginginkan output skrip, tetapi teks yang dikembalikan nantinya mungkin menyertakan output tersebut sekaligus statusnya. Kesalahan standar (standard error) tidak disembunyikan oleh pengalihan ini.

$? menyimpan status keluar dari perintah yang paling baru selesai dijalankan. Itulah sebabnya penetapan harus dilakukan langsung setelah pemanggilan skrip: jika perintah lain berjalan terlebih dahulu, $? akan mencerminkan perintah tersebut. printf kemudian memancarkan angka yang disimpan sebagai teks, yang dapat digunakan oleh Pintasan sebagai output tindakan. Panduan alur kerja skrip shell Mac Apple

Buat percabangan berdasarkan angka yang dikembalikan

Tambahkan tindakan Jika setelah Jalankan Skrip Shell. Atur inputnya ke output tindakan shell, pilih kondisi teks adalah, dan masukkan 0. Tempatkan tindakan yang berhasil di bawah Jika dan penanganan kegagalan apa pun di bawah Jika Tidak. Tindakan Jika di Pintasan Mac merutekan konten ke salah satu dari dua jalur berdasarkan kondisi yang Anda konfigurasikan. Panduan Apple untuk tindakan Jika di Pintasan di Mac

Perlakukan hasilnya sebagai teks karena tindakan shell mencetaknya. Eksekusi yang berhasil akan mengembalikan 0; hasil bukan nol akan mengambil cabang yang lain. Anda dapat menempatkan tindakan Tampilkan Peringatan di cabang kegagalan dan menyertakan nilai status dalam pesannya, atau meneruskan nilai tersebut ke tindakan berikutnya untuk pencatatan log. Skrip shell sering kali menggunakan nilai bukan nol yang berbeda-beda untuk membedakan penyebab kegagalan, sehingga mempertahankan angka tersebut dapat membantu proses diagnosis.

Hindari kesalahan umum saat memeriksa status

Jangan letakkan echo $? pada tindakan berikutnya dan mengharapkannya merujuk ke proses shell sebelumnya. Setiap tindakan shell memulai eksekusi perintahnya sendiri; $? hanya bermakna di dalam eksekusi shell yang sama dan segera setelah perintah yang statusnya Anda inginkan. Demikian pula, mencetak status sebelum skrip dijalankan hanya akan mencetak hasil dari apa pun yang berjalan sebelumnya.

Jika skrip menjalankan beberapa perintah, status keluar akhirnya mungkin bergantung pada cara skrip tersebut ditulis. Misalnya, perintah berikutnya yang berhasil dapat menutupi kegagalan sebelumnya kecuali skrip secara sengaja menyebarkan (propagate) atau menangani kegagalan tersebut. Pintasan hanya dapat membuat percabangan berdasarkan status yang pada akhirnya dikembalikan oleh skrip. Tinjau penanganan kesalahan skrip itu sendiri jika hasilnya tidak mencerminkan langkah yang Anda pedulikan.

Saat Anda menjalankan pintasan dari Terminal

Jika tujuan Anda adalah memeriksa apakah seluruh pintasan berhasil dijalankan dari Terminal, Apple mendokumentasikan perintah shortcuts terpisah: shortcuts run "Shortcut Name". Perintah tersebut menghasilkan status keluar 0 saat eksekusi pintasan berhasil dan 1 jika terjadi kesalahan. Ini adalah status dari pemanggilan pintasan, bukan variabel khusus yang berisi kode keluar tindakan shell internal. Untuk menggunakan status skrip itu sendiri dalam percabangan pintasan, tangkap dan cetak status tersebut di dalam tindakan shell seperti yang dijelaskan di atas. Panduan baris perintah Apple untuk Pintasan di Mac

Pola praktisnya sederhana: jalankan skrip, simpan $? segera, cetak nilai yang disimpan tersebut, dan bandingkan teks yang dihasilkan dengan 0 dalam tindakan Jika. Hal itu memberi pintasan Mac jalur keberhasilan dan jalur kegagalan yang jelas sembari menjaga keputusan tetap terikat pada hasil keluar skrip yang sebenarnya.

Sumber