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 (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 hanno alternativamente un'opzione force (come rm -f) o 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).

Collegamenti esterni