.bashrc , PROMPT_COMMAND ... historie bez duplikátů

Linux, Unix, BSD systémy, distribuce, open source

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Da Gony 7. 3. 2022 11:25

Moc se nevyznám v režimech historie bashe a kde všude se to nastavuje: .bashrc a proměnné HISTORY,HISTORYSIZE,HISTCONTROL, bashopts=:histappend_....

Prosim o poradění těchto nastavení proměnných .bashrc aby to ukládalo historii podle mých představ:

Ale chtěl bych nastavit režim historie takovýmto způsobem:
Frekvence zapisování a více session:
- aby nedocházelo při každém příkazu k opakovanému načítání /hledání-duplicit/zapisování souboru s historií.
-aby se na disk zapisoval soubor s historií jen po ukončení session shellu
-aby nebyl konflikt, když je otevřeno víc shellů najednou a neztratily se příkazy

Režim duplicit:
-aby se se do seznamu s historií nepřidával příkaz, který už tam je
-aby se v seznamu s historií nevyskytovaly stejné řádky
-aby se dosouboru s historií přidávalo na konec (což znamená, že by už vykonané příkazy se neposouvaly v v historii jako čerstvě vykonané NEBO volitelně pokud se vykonal příkaz který už je v historii, tak by proplul na konec (zachovávalo by to pořadí čerstvězadaných příkazů, ale soubor by se musel číst celý a
starší duplicita smazat
)

Současné řešení má tu nevýhodu, že duplicity se odstraňují jen v rámci instance session shellu, to znamená, že když v jedné session provedu příkazy alfa ; beta ; alfa ; beta, tak se uloží jen alfa ; beta ... Ale když v novém session shellu udělám to samé, uloží se znova
bashopts:histappend
HISTCOTROL:erasedups, ignoreboth



Mám pocit, že tady je

Rovnou se zeptám, existuje v .bashrc nějaký nastevení nebo funkce, která se vykoná při ukončení shellu bash?
Něco v tomhle smyslu:
Kód: Vybrat vše

moje fn () { echo "Odhlasen $USER: `date` ; }
register_shutdown_function(mojefn)
Da Gony
Junior
Uživatelský avatar

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků