Come usare il comando yes in Linux.

Il comando yes sembra troppo semplice per essere di utilità pratica, ma in questo tutorial ti mostreremo la sua applicazione e come beneficiare della sua positività accumulata su Linux e macOS.

il comando sì

Il comando yes è uno dei comandi più semplici su Linux e altri sistemi operativi simili a Unix come macOS. E per semplice intendiamo semplice nel suo utilizzo e nella sua implementazione iniziale. Il codice sorgente della versione originale, pubblicato su System 7 Unix e creato da – ammonta a un mero .

Come usare il comando yes in Linux

Ma non liquidarlo come un semplice comando. Può essere utilizzato in modi interessanti e utili.

Cosa fa?

Utilizzato senza alcun parametro della riga di comando, il comando yes si comporta come se stessi digitando “y” e premendo Invio, più e più volte (e più e più volte). Molto velocemente. E continuerà a farlo finché non premi Ctrl + C per interromperlo.

Come usare il comando yes in Linux

E questo è

In effetti, può essere utilizzato per generare ripetutamente qualsiasi messaggio tu scelga. Basta digitare sì, uno spazio, la stringa che si desidera utilizzare, quindi premere Invio. Questo è spesso usato per fare in modo che yes generi un flusso di output di stringhe di “yes” o “no”.

Come usare il comando yes in Linux

si si

si tutto quello che vuoi

Come usare il comando yes in Linux

Ma a cosa serve?

L’output di yes può essere reindirizzato ad altri programmi o script.

Ti suona familiare? Inizi un lungo processo e te ne vai, lasciandolo correre. Quando torni al tuo computer, il processo non è affatto completo. In sua assenza, ti ha fatto una domanda ed è seduto lì ad aspettare una risposta “sì” o “no”.

Se sai in anticipo che tutte le tue risposte saranno positive (“sì” o “y”) o negative (“no” o “n”), puoi usare sì per fornire quelle risposte. Quindi il tuo lungo processo verrà completato senza supervisione e il sì fornirà le risposte a tutte le domande che il processo ti pone.

Come usare il comando yes in Linux

Utilizzo di yes con gli script

Guarda il seguente script di shell bash. (Dobbiamo immaginare che questo faccia parte di uno script molto più grande che richiederà molto tempo per essere eseguito.)

#!/bin/bash # … # nel mezzo di un lungo script # ottenere una risposta dall’utente # … echo “Vuoi procedere? ” read input # abbiamo ottenuto un valore di input? Se ; then echo “Niente è stato inserito dall’utente” # era sì o sì? elif [[ “$input” == “y” ]]|| [[ “$input” == “yes” ]]; then echo “Risposta positiva: $input” # tratta qualsiasi altra cosa come una risposta negativa else echo “risposta negativa: $input” fi

Questo script pone una domanda e attende una risposta. Il flusso logico all’interno dello script è deciso dall’input dell’utente.

Come usare il comando yes in Linux

Un “sì” o “e” indica una risposta positiva.
Qualsiasi altro input è considerato una risposta negativa.
Premendo Invio senza inserire il testo non fa nulla.

Per verificarlo, copia lo script in un file e salvalo come long_script.sh. Usa chmod per renderlo eseguibile.

chmod +x long_script.sh

Eseguire lo script con il seguente comando. Prova a fornire “sì”, “e” e qualsiasi altra cosa come input, inclusa la pressione di Invio senza inserire testo.

Come usare il comando yes in Linux

./long_script.sh

Per ottenere yes per fornire la nostra risposta alla domanda dello script, invia l’output di yes allo script.

Sì | ./long_script.sh

Come usare il comando yes in Linux

Alcuni script sono più rigidi nei loro requisiti e accettano solo la parola completa “sì” come risposta positiva. Puoi fornire “yes” come parametro per yes, come segue:

si si | ./long_script.sh

Non dire di sì senza pensarci bene

Devi essere sicuro che l’input che stai per inserire nello script o nel programma ti darà sicuramente il risultato che ti aspetti. Per prendere questa decisione, devi conoscere le domande e quali dovrebbero essere le tue risposte.

La logica dello script, del comando o del programma potrebbe non corrispondere alle tue aspettative. Nel nostro script di esempio, la domanda avrebbe potuto essere “Vuoi smettere? . » Se fosse stato così, una risposta negativa avrebbe permesso alla sceneggiatura di continuare.

Dovresti avere familiarità con lo script, il comando o il programma prima di dire allegramente di sì.

Utilizzo di yes con i comandi

Nella sua infanzia, yes sarebbe stato usato con altri comandi Linux. Da allora, la maggior parte di quegli altri comandi Linux ha il proprio modo di funzionare senza interazione umana. sì, non è più necessario raggiungerlo.

Prendiamo come esempio il gestore di pacchetti apt-get di Ubuntu. Per installare un’app senza dover premere “y” a metà dell’installazione, sì sarebbe stato utilizzato come segue:

Sì | sudo apt-get install fortune-mod

Come usare il comando yes in Linux

Lo stesso risultato può essere ottenuto utilizzando l’opzione -y (presuppone sì) per apt-get:

sudo apt-get -y install fortune-mod

Vedrai che apt-get non ha nemmeno chiesto il suo solito “Vuoi continuare? “Chiedere. Ha appena pensato che la risposta sarebbe stata “sì”.

Su altre distribuzioni Linux, la situazione è la stessa. Su Fedora, una volta avrei usato questo tipo di comando del gestore pacchetti:

Come usare il comando yes in Linux

Sì | yum installa fortuna-mod

Il gestore di pacchetti dnf ha sostituito yum e dnf ha la sua opzione -y (presunta così).

dnf -y install fortune-mod

Lo stesso vale per cp, fsck e rm. Ciascuno di questi comandi ha le proprie opzioni -f (forza) o -y (assume sì).

Quindi sembra che sia stato relegato a lavorare solo con gli script? Non proprio. Ci sono ancora alcuni trucchi nel vecchio cane.

Alcuni altri trucchi sì

Puoi usare yes con una sequenza di cifre generate da seq per controllare un ciclo di azioni ripetute.

Questa frase univoca riecheggia le cifre generate nella finestra del terminale e quindi chiama sleep per un secondo.

Invece di inviare semplicemente le cifre alla finestra del terminale, puoi chiamare un altro comando o script. Quel comando o script non ha nemmeno bisogno di usare le cifre, e sono lì solo per iniziare ogni ciclo del ciclo.

sì “$(seq 1 20)” | durante la lettura della cifra; fare eco cifra; dormire 1; donare

A volte è utile avere un file di grandi dimensioni da testare. Forse vuoi esercitarti usando il comando zip o vuoi avere un file di dimensioni considerevoli per testare i caricamenti FTP.

Puoi generare rapidamente file di grandi dimensioni con yes. Tutto quello che devi fare è dargli una lunga stringa di testo con cui lavorare e reindirizzare l’output su un file. Non commettere errori; quei file cresceranno rapidamente. Preparati a premere Ctrl + C in pochi secondi.

sì lunga riga di testo privo di significato per il riempimento del file > test.txt ls -lh test.txt wc test.txt

Il file generato qui ha impiegato circa cinque secondi sulla macchina di prova utilizzata per ricercare questo articolo. ls riporta che ha una dimensione di 557 Mb e ci dice che contiene 12,4 milioni di righe.

Possiamo limitare la dimensione del file includendo head nella nostra stringa di comando. Gli diciamo quante righe includere nel file. L’intestazione -50 significa che verranno passate solo 50 righe al file test.txt.

sì lunga riga di testo privo di significato per il riempimento del file | testa -50 > test.txt

Non appena ci sono 50 righe nel file test.txt, il processo si interromperà. Non c’è bisogno di usare Ctrl + C. Si ferma con grazia da solo.

wc riporta che ci sono esattamente 50 righe nel file, 400 parole e 2350 byte di dimensione.

Sebbene sia ancora utile per inserire risposte in script di lunga durata (e alcuni altri trucchi), il comando yes non farà parte del tuo toolkit di comandi quotidiano. Ma quando ne avrai bisogno, scoprirai che è la semplicità stessa, e tutto in sei righe di codice aureo.