Vzhledem k příkazu, který mění své chování, když jeho výstup směřuje do terminálu (např. produkuje barevný výstup), jak lze tento výstup přesměrovat do potrubí při zachování změněného chování? Na to musí existovat utilita, o které nevím.
Některé příkazy, například grep --color=always
, mají příznaky voleb k vynucení chování, ale otázkou je, jak obejít programy, které se spoléhají pouze na testování jejich deskriptoru výstupního souboru.
Pokud na tom záleží, můj shell je bash
na Linuxu.
Přijatá odpověď:
To, co potřebujete, můžete získat pomocí unbuffer
.
unbuffer
je tcl
/ expect
skript. Jestli chceš, podívej se na zdroj. Všimněte si také sekce VAROVÁNÍ v man.
Všimněte si také, že neprovádí aliasy jako:
alias ls='ls --color=auto'
pokud nepřidáte trik, jak poznamenal Stéphane Chazelas:
Pokud uděláte alias unbuffer='unbuffer '
(všimněte si mezery na konci), pak budou aliasy rozbaleny po unbuffer
.