Qualcuno sa perché Bash ha ancora la sostituzione della cronologia abilitata per impostazione predefinita? La mia .bashrc
è stata inclusa set +H
per molti anni, ma alcune altre persone vengono ancora morse da questa funzione.
Dato che praticamente tutti usano terminali con funzionalità copia-incolla e bash compilato con la sostituzione della readline
libreria e della cronologia è abilitato di default solo nelle shell interattive, c'è davvero qualche motivo per avere la funzione? Nessuno degli script esistenti sarebbe rotto anche se questo fosse disabilitato di default per tutte le shell.
Prova questo se non sai perché la sostituzione della cronologia è interrotta:
$ set +H # disable feature history substitution
$ echo "WTF???!?!!?"
WTF???!?!!?
$ set -H # enable feature history substitution
$ echo "WTF???!?!!?"
echo WTF???echo WTF???!?!!?
WTF???echo WTF???!?!!?
(Chiaramente la funzione ha grossi problemi se è disabilitata per impostazione predefinita per tutti gli script ed esiste una funzione per verificare i risultati prima di eseguire:. shopt -s histverify
)
Guarda anche:
&
? Perché dovrei dover scappare o citare un nome file che contiene un ?
? Ci sono interfacce utente per le persone che pensano che questo sia un problema.
!$
più volte al giorno e anche !!
abbastanza spesso. Devo ammettere che non uso così tanto altre sostituzioni di cronologia, ma sarei sicuramente infelice se il comportamento predefinito della shell che sto usando da anni è improvvisamente cambiato.
ls -l foo/bar/baz/weeble.cpp
conless !$
rispetto richiamo del comando e modificarlo.