GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Menjalankan Script Di Shell Saat Tombol Pintasan Ditekan?

Bagaimana saya bisa menjalankan skrip di Shell ketika tombol pintasan ditekan.

Pada dasarnya yang saya butuhkan adalah ketika tombol pintasan ditekan, skrip harus membaca dari file dan menampilkan konten itu di terminal.

Jawaban yang Diterima:

Anda dapat menggunakan perintah bawaan, bind untuk memetakan pintasan keyboard sehingga mengeksekusi perintah/skrip shell.

Contoh

Katakanlah kita ingin menjalankan perintah, pwd , saat kita menekan tombol F12 kunci.

$ bind '"\e[24~":"pwd\n"'

Sekarang ketika saya menekan F12 di prompt saya, $ :

$ pwd
/home/saml

Menentukan pintasan keyboard

Anda dapat menggunakan teknik berikut untuk menentukan kode escape untuk pintasan keyboard yang diberikan. Pada sebagian besar sistem, tekan Ctrl + V , lepaskan, lalu tekan tombol yang Anda inginkan kodenya. Ada beberapa sistem lain yang akan bekerja dengan M bukannya V

Contoh

Menekan Ctrl + V lalu lepaskan keduanya Ctrl dan V dan terakhir tekan F12 di jendela terminal mengembalikan ini:

$ ^[[24~

Output ini dapat diartikan sebagai berikut, ^[ adalah Esc kunci. Jadi ketika kita ingin menentukan kunci khusus ini menggunakan bind perintah kita perlu menggunakan \e untuk menunjukkan Esc kunci diikuti oleh yang lainnya dari atas. Jadi bind perintahnya seperti ini:

$ bind '"\e[24~":"....."'

Menjalankan perintah di tengah

Anda juga dapat menggunakan bind -x untuk menyiapkan pintasan keyboard yang akan menjalankan perintah saat Anda sedang mengetik sesuatu saat diminta, dan output perintah ini akan ditampilkan, tetapi apa pun yang Anda ketikkan saat diminta akan tetap utuh.

$ bind -x '"\eW":"..."'

CATATAN: Metode ini hanya berfungsi dengan pintasan keyboard yang menghasilkan 1 karakter, jadi F12 tidak akan berfungsi di sini.

Contoh

Mari kita alias pintasan keyboard Alt + Bergeser + W .

$ bind -x '"\eW":"who"'

Katakanlah saya sedang mengetik perintah finger :

$ finger

Sekarang saya menekan pintasan keyboard Alt + Bergeser + W :

saml     tty1         2013-09-01 11:01 (:0)
saml     pts/0        2013-09-01 11:03 (:0.0)
saml     pts/1        2013-09-01 11:05 (:0.0)
saml     pts/2        2013-09-01 11:05 (:0.0)
saml     pts/5        2013-09-03 22:45 (:0.0)
$ finger

Apa yang terjadi adalah bind sedang menjalankan perintah yang ditentukan, who , mengambil outputnya dan memasukkannya di depan prompt. Jika Anda mengulanginya, Anda akan melihat apa yang terjadi, inilah output dari saya yang memukulnya 2 kali:

saml     tty1         2013-09-01 11:01 (:0)
saml     pts/0        2013-09-01 11:03 (:0.0)
saml     pts/1        2013-09-01 11:05 (:0.0)
saml     pts/2        2013-09-01 11:05 (:0.0)
saml     pts/5        2013-09-03 22:45 (:0.0)
saml     tty1         2013-09-01 11:01 (:0)
saml     pts/0        2013-09-01 11:03 (:0.0)
saml     pts/1        2013-09-01 11:05 (:0.0)
saml     pts/2        2013-09-01 11:05 (:0.0)
saml     pts/5        2013-09-03 22:45 (:0.0)
$ finger

Masalah Anda

Jadi satu ide adalah menggunakan bind -x metode di atas dan cat untuk menampilkan file teks ini pada prompt Anda:

$ bind -x '"\eW":"cat someinfo.txt"'

Sekarang ketika saya menjalankan perintah, saya dapat melihat file ini seperti ini:

This is text from some 
multi-line file reminding
me how to do some 
stuff
$ finger 

Output dari file someinfo.txt sedang ditampilkan di atas finger saya perintah di atas.

Terkait:Memvalidasi SelectList HTLM menggunakan Java Script?

Referensi

  • Di bash, bagaimana cara mengikat tombol fungsi ke perintah?

Linux
  1. Bagaimana Menangani Switch Dalam Script Shell?

  2. Bagaimana Membuat File Sementara Di Shell Script?

  3. Deteksi Jika Tombol Ditekan Dari Script?

  1. Bagaimana Cara Memicu Suatu Peristiwa Dalam Skrip Shell Saat Perangkat Usb Dihapus?

  2. Bagaimana Mengeksekusi Perintah Di Gnuplot Menggunakan Script Shell?

  3. Bagaimana cara menjalankan skrip Shell ketika file atau direktori berubah?

  1. Bagaimana Cara Mengeksekusi Skrip Sh Dari Pintasan Desktop?

  2. Bagaimana cara menjalankan skrip bash?

  3. Cara menjalankan skrip shell saat saya menyambungkan perangkat USB