yes (Unix)

Versione del 8 dic 2015 alle 22:26 di Laurentius (discussione | contributi) (Creata dalla traduzione della pagina "Yes (Unix)")
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

yes è un comando Unix che stampa una risposta affermativa, o una stringa di testo definita dall'utente, finché non viene interrotto.

Descrizione

Il comando yes stampa ripetutamente la lettera "y", o l'eventuale stringa di testo passata come parametro, seguito da un ritorno a capo, finché non viene fermato dall'utente o ucciso in altro modo. Se rediretto su un altro comando continua finché la pipe non viene interrotta (e quindi quando l'esecuzione del programma è completata).

Può anche essere usato per testare il comportamento di un sistema sotto carico, in quanto yes, sui sistemi monoprocessore, usa il 100% della CPU (nei sistemi multiprocessore per ottenere lo stesso risultato è necessario lanciare un processo per ogni CPU).

Uso

Alcuni programmi Unix a riga di comando per procedere chiedono all'utente di rispondere di sì con una y. Nel suo uso più classico, yes permette di utilizzare tali programmi in maniera non interattiva, dandogli automaticamente una risposta affermativa (o negativa, usando yes n).

This usage may be obsolete today, as most commands that would request response from the user have either a 'force' option (e.g., rm -f) or an 'assume-yes' option (e.g., apt-get -y).

Ad esempio, il seguente comando:

rm -f *.txt

è funzionalmente equivalente a:

yes | rm *.txt

Assieme al comando head, yes può essere usato per generare file voluminosi a scopo di test. Ad esempio, l'esecuzione di:

yes 1234567 | head -1000 > file

produce un file di 1000 righe, ognuna delle quali formata da otto caratteri (1, 2, 3, 4, 5, 6, 7 e un ritorno a capo).


Note


Further reading

  • Montfort, Nick (January 2012). The Trivial Program “yes” (PDF) (Technical report). Cambridge, Massachusetts: Trope Tank. 12-01. Retrieved 2013-04-26. 

Collegamenti esterni