Saya menemukan perintah yang membantu ini bind -x '"\C-r"':reset
untuk menghapus terminal tetapi saya ingin membuat skrip bash sederhana:
#!/bin/bash
bind -x '"\C-r"':reset
keluaran:
alfred@alfred-laptop:~/bash$ ./bind
./bind: line 2: bind: warning: line editing not enabled
Bisakah seseorang tolong jelaskan:
- Bagaimana saya bisa memperbaikinya?
- Apa
warning: line editing not enabled
artinya
echo -e '\0033\0143'
berkat superuser.com/questions/122911/bash-reset-and-clear-commands/… , tapi saya masih ingin tahu apa artinya kesalahan ini dan bagaimana cara memperbaikinya. Terimakasih banyak.set -o emacs
atauset -o vi
ke dalam skrip Anda (sebelumbind
, tentu saja).Jawaban:
Anda perlu sumber skrip itu. Lakukan
. ./bind
atausource ./bind
untuk membuat ikatan kunci itu aktif di sesi saat ini.Menjalankannya secara normal, ia tidak memiliki terminal sehingga memberi Anda pesan kesalahan itu. Juga, jika itu berfungsi, itu hanya akan aktif selama durasi skrip.
Jika Anda ingin agar pengikat tombol tetap ada, tambahkan perintah itu ke
~/.bashrc
.sumber
source
.source
atau dot (.
), tambahkan fungsi ke~/.bashrc
: Anda :rbind () { bind -x '"\C-r"':reset; }
Anda dapat masukrbind
dengan itu sendiri sebagai perintah dan mengikat akan diaktifkan.Saya punya pesan serupa tetapi milik saya berasal dari skrip yang dijalankan di luar shell interaktif (login); itu adalah skrip shell yang dijalankan melalui skrip CGI. Pesan saya adalah:
dan meskipun sebenarnya bukan pada baris 4, satu-satunya
bind
dalam file itu adalah:yang tentu saja hanya masuk akal jika pengeditan baris diaktifkan, yaitu jika itu shell interaktif.
sumber