yes (Unix)
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).
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
- (EN) Pagina di manuale di yes (versione GNU)