Adakah yang tahu mengapa bash masih memiliki substitusi histori yang diaktifkan secara default? Saya .bashrc
sudah memasukkan set +H
selama bertahun-tahun tetapi beberapa orang lain masih digigit oleh fitur ini.
Mengingat hampir semua orang menggunakan terminal dengan fitur salin-tempel dan bash yang dikompilasi dengan readline
pustaka dan substitusi sejarah diaktifkan secara default hanya di shell interaktif, apakah benar-benar ada alasan untuk memiliki fitur sama sekali? Tak satu pun dari skrip yang ada akan rusak bahkan jika ini dinonaktifkan secara default untuk semua shell.
Coba ini jika Anda tidak tahu mengapa penggantian riwayat rusak:
$ set +H # disable feature history substitution
$ echo "WTF???!?!!?"
WTF???!?!!?
$ set -H # enable feature history substitution
$ echo "WTF???!?!!?"
echo WTF???echo WTF???!?!!?
WTF???echo WTF???!?!!?
(Jelas fitur memiliki masalah besar jika dinonaktifkan secara default untuk semua skrip dan ada fitur untuk memverifikasi hasil sebelum mengeksekusi:. shopt -s histverify
)
Lihat juga:
&
? Mengapa saya harus melarikan diri atau mengutip nama file yang mengandung ?
? Ada UI untuk orang yang menganggap ini masalah.
!$
beberapa kali sehari, dan !!
cukup sering juga. Saya harus mengakui bahwa saya tidak menggunakan banyak pengganti sejarah, tapi saya pasti tidak akan senang jika perilaku default shell yang saya gunakan selama bertahun-tahun tiba-tiba berubah.
ls -l foo/bar/baz/weeble.cpp
denganless !$
dari recall perintah dan mengedit itu.