yes (Unix)
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.