Хтось знає, чому у Bash все ще включена заміна за замовчуванням? Моя .bashrc
є set +H
багато років, але деякі люди все ще покусані цією функцією.
Зважаючи на те, що майже всі користуються терміналами з функціями копіювання-вставки та bash, складений із заміною readline
бібліотеки та історії, за замовчуванням увімкнено лише в інтерактивних оболонках, чи дійсно є причина взагалі мати цю функцію? Жоден із існуючих сценаріїв не буде порушений, навіть якщо це було відключено за замовчуванням для всіх оболонок.
Спробуйте це, якщо ви не знаєте, чому порушена підміна історії:
$ set +H # disable feature history substitution
$ echo "WTF???!?!!?"
WTF???!?!!?
$ set -H # enable feature history substitution
$ echo "WTF???!?!!?"
echo WTF???echo WTF???!?!!?
WTF???echo WTF???!?!!?
(Очевидно, що ця функція має основні проблеми, якщо вона за замовчуванням відключена для всіх сценаріїв і існує функція для перевірки результатів перед виконанням:. shopt -s histverify
)
Дивись також:
&
? Чому мені потрібно уникати або цитувати ім'я файлу, що містить a ?
? Є інтерфейси для людей, які вважають, що це проблема.
!$
кілька разів на день, і !!
досить часто також. Я мушу визнати, що я не використовую так багато інших підстановок історії, але я точно буду незадоволений, якби поведінка оболонки, яку я використовував протягом багатьох років, раптом змінилася.
ls -l foo/bar/baz/weeble.cpp
зless !$
чим згадати команди та редагувати його.