GNU/Linux >> Znalost Linux >  >> Linux

Jak oklamat příkaz, aby si myslel, že jeho výstup směřuje do terminálu?

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 .


Linux
  1. Jak oklamat konkrétní příkaz, aby si myslel, že je to jiné datum?

  2. Terminál Ctrl+s versus Ctrl+z?

  3. Jak skrýt výstup terminálu při provádění příkazu?

  1. Jak mohu zkopírovat výstup příkazu přímo do schránky?

  2. Jak připojit výstup do souboru?

  3. Jak používat vi k úpravě příkazu v terminálu na Linuxu?

  1. Jak upravit textový soubor v mém terminálu

  2. Jak uložit výstup příkazu do pole v Ansible?

  3. Jak mohu zkopírovat výstup ze vzdáleného příkazu do místní schránky?