Alih-alih memberi tahu Anda cara melakukannya, saya akan memberi tahu Anda bahwa Anda seharusnya tidak melakukan itu.
TL; DR - Jangan ubah skrip Anda. Alih-alih mengkonfigurasi pengelola file Anda atau mencari tahu mengapa pengguna Anda menjalankannya secara tidak sengaja.
EDIT: Tampaknya Anda memperlakukan skrip Anda sebagai sesuatu yang istimewa, seolah-olah pengaturan umum tidak cukup baik dan skrip Anda memerlukan konfirmasi khusus dari pengguna. Mengklik dua kali itu adalah konfirmasi. Jika Anda menemukan bahwa pengguna Anda menjalankannya secara tidak sengaja maka Anda harus mencari tahu mengapa mereka melakukannya dan menyelesaikannya. Maka masalah Anda yang sebenarnya bukanlah bagaimana cara meminta konfirmasi tetapi bagaimana mencegah pengguna Anda menjalankannya secara tidak sengaja.
Dari cara Anda mengekspos masalah Anda, tampaknya Anda mengharapkan program (skrip) Anda dijalankan dengan menavigasi ke tempat file itu, dan kemudian mengkliknya dari manajer file. Pikirkan semua program lain di sistem Anda. Berapa banyak yang Anda mulai seperti itu? Apakah Anda menavigasi ke /usr/local/bin
saat memulai firefox? Tentu saja tidak. Anda mengkliknya dari menu aplikasi. (Tweak gnome adalah skrip python mungkin itu contoh yang lebih baik)
Semoga Anda tidak akan mempertimbangkan mengkliknya dari menu aplikasi kecelakaan. Jadi masalah Anda adalah bagaimana membuat skrip Anda muncul di sana daripada menggunakan file manager. Untuk melakukan ini, Anda melakukan hal-hal berikut:
letakkan skrip Anda dari file lain di mana pengguna dapat mengkliknya secara tidak sengaja (tempat tipikal adalah /usr/local/bin/
untuk instalasi seluruh sistem atau ~/.local/bin/
untuk instalasi pengguna)
buat file Entri Desktop (baca spesifikasi standar ). Ini kasus minimal:
[Desktop Entry]
Name=Your script name
Exec=path/for/your/script
Icon=path/for/your/icon/can/be/svg
Terminal=false
Type=Application
dan masukkan /usr/local/share/applications/your-script.xml
atau ~/.local/share/your-script.xml
.
Akhirnya lari update-desktop-database
.
Karena Anda mengklik dua kali pada skrip, itu tugas manajer file Anda untuk mengonfirmasi ini. Bukan tugas skrip untuk mengonfirmasi apakah skrip harus dijalankan. Ambil ini secara ekstrim. Bisakah Anda bayangkan betapa konyolnya setiap kali Anda menelepon suatu program yang harus Anda konfirmasikan?
Satu-satunya waktu ketika sebuah program harus meminta konfirmasi adalah ketika itu akan melakukan sesuatu yang mungkin berbahaya dan tidak dapat diubah. Misalnya, menimpa file atau melewati tempat sampah. Dan perhatikan bahwa bahkan contoh-contoh ini adalah tentang membuat program melakukan sesuatu yang spesifik. Mereka bukan tentang memulai program semacam itu. Jika suatu program hanya bertujuan untuk melakukan hal berbahaya seperti itu, maka seharusnya tidak meminta konfirmasi juga.
Memang, Nautilus (pengelola file Gnome) sudah secara default akan meminta Anda untuk mengonfirmasi apakah Anda ingin menjalankan skrip (atau cukup membukanya di editor teks).
Dan tentu saja, perilaku ini dapat dikonfigurasi, memberikan pengguna kemungkinan untuk mematikannya (entri catatan pada File Teks yang Dapat Dieksekusi ).
Jadi, jangan tambahkan dialog konfirmasi yang mengganggu ke skrip Anda. Konfigurasikan manajer file Anda dengan benar. Dan biarkan pengguna Anda melakukan hal yang sama.
if zenity...
atauzenity... || exit