Yes (Unix)
# Yes (Unix)

yes è un comando Unix che stampa una risposta affermativa, o una stringa di testo definita dall'utente, finché non viene interrotto. Il comando fa parte delle GNU Core Utilities, ma non è incluso nella Single UNIX Specification.

## 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 se invocati da riga di comando per procedere chiedono all'utente di rispondere di sì con una y (o di no, con una n). 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).

Questo spesso oggi non è più necessario, in quanto molti comandi che richiedono risposte dall'utente prevedono alternativamente un'opzione force (come rm -f) o hanno un'opzione assume-yes (come 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).

