yes (Unix)

Z Multimediaexpo.cz

Verze z 21. 6. 2013, 13:17; Sysop (diskuse | příspěvky)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)

yes je Unixový příkaz, který vypisuje na výstup kladnou odpověď, případně uživatelem zadaný textový řetězec, dokud není přerušen.

Popis

Sám od sebe umí yes pouze vypisovat 'y' či to, co mu bylo dáno za úkol, následované odřádkováním, dokud nebude uživatelem zastaven; pokud je jeho výstup přesměrován do roury, zastaví ho také ukončení programu, který skrze rouru krmí.


Použití

yes může být použit na posílání automatické odpovědi  (a to i záporné, například pomocí yes n) programům, které by jinak vyžadovaly reakci uživatele, tedy umožňuje (za určitých okolností) použít interaktivní programy neinteraktivně.

Tento způsob použití může být dnes považován za překonaný, protože většina příkazů vyžadujících reakci uživatelů už má možnost pustit je s přepínačem, který interakci potlačí (například 'force' v rm -f, nebo 'assume-yes' v apt-get -y v Debianu).

Například následující příkaz

rm -f *.txt

provede totéž co

yes | rm *.txt

Díky tomu, že se program snaží generovat výstup co nejrychleji a nepotřebuje ke své práci periferie (a tedy není zdržován čekáním na ně), může být použit na vytížení procesoru na 100%, což se může hodit například při zkoušení funkčnosti chlazení procesoru. Není paralelizovatelný a na počítačích s více jádry je pro jejich plné vytížení nutno pustit tolik instancí 'yes', kolik je jader.