Che cos'è il comando "sì"?


29

Ho emesso un comando nel terminale Ubuntu che mi ha richiesto di digitare Sì ma ho scoperto che mi chiede solo la prima volta, ma avevo già premuto Invio prima di rendermene conto. Quindi mi aspettavo un messaggio "comando non trovato" ma invece ho ricevuto un flusso infinito di "y" s. Questa sembra essere l'unica cosa che fa, quindi mi chiedo quale sia il punto di questo comando e perché produca "y" s? (Ubuntu 11.10)

Risposte:


14

Da Wikipedia :

Di per sé, il comando yes genera 'y' o qualunque cosa sia specificata come argomento, seguita da una nuova riga ripetutamente fino a quando non viene fermata dall'utente o altrimenti uccisa; quando viene convogliato in un comando, continuerà fino a quando il tubo non si rompe (ovvero, il programma completa la sua esecuzione).

Può anche essere utilizzato per testare la capacità di un sistema di gestire carichi elevati, poiché l'utilizzo di yes comporta un utilizzo del processore del 100%, per i sistemi con un singolo processore (per un sistema multiprocessore, è necessario eseguire un processo per ciascun processore). Questo, ad esempio, può essere utile per verificare se il sistema di raffreddamento di un sistema sarà efficace quando il processore è in esecuzione al 100%.


30

Molto tempo fa (giorni SySV e precedenti), il fsckcomando non aveva -yo -nopzioni. Il comando ti chiederebbe in modo interattivo di modificare centinaia o migliaia di elementi, aspettandosi una 'y' o 'n'. Il yescomando è stato creato per reindirizzare a fsck e alcuni altri programmi per poter rispondere ripetutamente alle domande interattive (di nuovo, erano giorni SysV, molto prima di Tcl e Expect). Il yesprogramma si adatta molto bene alla filosofia UNIX: piccoli programmi che fanno molto bene cose specifiche e funzionano con altri programmi.


4

Sulla base delle informazioni fornite qui: http://linux.about.com/library/cmd/blcmdl1_yes.htm

Comando Linux / Unix: sì

Libreria dei comandi

NOME

sì - emette ripetutamente una stringa fino a quando non viene ucciso

SINOSSI

sì [STRING] ... sì OPZIONE

DESCRIZIONE

Emettere ripetutamente una riga con tutte le STRING specificate o `y '.

--help visualizza questa guida ed esce --version informazioni sulla versione di output ed esce
VEDI ANCHE

La documentazione completa di yes è gestita come un manuale Texinfo. Se i programmi info e yes sono installati correttamente sul tuo sito, il comando

info yes

dovrebbe darti accesso al manuale completo.

Secondo la mia modesta opinione, l'uso di un comando "yes" suona logico quando devi autorizzare ripetutamente qualcosa in un processo / script premendo il tasto "y". Quale può essere controllato annullando l'esecuzione del programma.

Comunque, qualcun altro potrebbe avere esperienza nell'uso di questo comando.


Non ho molta esperienza con Linux, come puoi usare il comando "yes" all'interno di un processo / script?
Greg Treleaven,


1

Il comando yes stamperà il suo argomento o "y" se è vuoto, fino a quando non si termina il programma o la sua pipe di output viene chiusa. Può essere utilizzato con programmi che prevedono input ripetuti, come rm -i.


1
perché dovresti fare un rm iterativo se usi si per cancellare tutto?
dal

@fromnaboo È un cattivo esempio, lo so. Ma a volte non hai accesso al funzionamento interno di un programma che devi usare, quindi sì può aiutarti a evitare di ripetere all'infinito lo stesso input.
daniel kullmann l'

@fromnaboo Per aumentare la positività netta della tua macchina.
Walf
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.