Wie die yes-Befehl unter Linux

0
554

Ja scheint zu einfach zu sein, jede praktische Anwendung, aber in diesem tutorial werden wir Ihnen zeigen, Ihre Anwendung und wie man nutzen aus Ihrer aufgestauten Positivität in Linux und macOS.

Ja

Der yes-Befehl ist eine der einfachsten Befehle in Linux und anderen Unix-ähnlichen Betriebssystemen wie macOS. Und mit einfach meinen wir einfach in seinem Gebrauch und seiner ersten Umsetzung. Der Quellcode für die original-version veröffentlicht, in System 7 Unix und verfasst von Ken Thompson—beläuft sich auf lediglich sechs Zeilen code.

Aber schreiben Sie nicht aus für einen kleinen einfachen Befehl. Es kann verwendet werden, in der einige interessante und nützliche Möglichkeiten.

Was Bedeutet ja?

Ohne Kommandozeilen-Parameter, die ja Befehl verhält sich so, als ob Sie waren auf der Eingabe von “y” und Enter drückst, immer und immer (und immer) wieder. Sehr schnell. Und Sie wird weitermachen so lange, bis Sie mit Strg+C unterbrechen.

ja

In der Tat, ja kann verwendet werden, um wiederholt generiert jede Nachricht, die Sie wählen. Geben Sie einfach ein, ja, ein Raum, der die Zeichenfolge, die Sie verwenden möchten, und drücken Sie dann die EINGABETASTE. Dies wird oft verwendet, um zu verursachen, ja auf generieren einen output-stream mit “ja” oder “Nein” – strings.

ja ja

ja, was Sie wollen

Aber Was Nützt Das?

Die Ausgabe vom ja geleitet werden können in andere Programme oder Skripte.

Klingt das vertraut? Sie beginnen einen langen Prozess ausgeführt wird, und Schritt entfernt, so dass es zu laufen. Wenn Sie zurück zu Ihrem computer, ist der Prozess noch nicht abgeschlossen an alle. In Ihrer Abwesenheit, er hat Sie gebeten, eine Frage und saß wartend auf ein “ja” oder “Nein” Antwort.

Wenn Sie im Voraus wissen, dass alle Ihre Antworten werden positive (“yes” oder “y”) oder negative (“Nein” oder “n”) können Sie ja, um die Antworten für Sie. Ihre langen Prozess wird dann bis zur Fertigstellung unbeaufsichtigt mit ja bietet die Antworten auf alle Fragen, die der Prozess verlangt.

Mit ja Mit Scripts

Schauen Sie sich die folgenden Bash-shell-Skript. (Wir müssen uns vorstellen, dass dies ein Teil eines viel größeren Skript, das viel Zeit in Anspruch nehmen, zu laufen.)

#!/bin/bash

# …
# in der Mitte ein paar lange Skript
# eine Antwort vom user
# …

echo “Sie Sind glücklich zu gehen? [J,n]” –
Eingang Lesen

# haben wir ein input-Wert?
if [ “$Eingabe” == “” ]; then

echo “es wurde Nichts eingegeben vom Benutzer”

# es war ein y-oder ein ja?
elif [[ “$Eingabe” == “y” ]] || [[ “$Eingabe” == “ja” ]]; then

echo “Positive Resonanz: $Eingabe”

# zu behandeln, nichts anderes als eine negative Antwort
sonst

echo “die Antwort negativ ist: $input”

fi

Dieses Skript stellt eine Frage und erwartet eine Antwort. Die Logik Strömung innerhalb des Skript beschlossen wird die Eingabe des Benutzers.

  • Ein “ja” oder “y” weist auf eine positive Antwort.
  • Jede andere Eingabe wird als eine negative Antwort.
  • Drücken der EINGABETASTE ohne Eingabe von text-macht nichts.

Um dies zu testen, kopieren Sie das Skript in eine Datei und speichern Sie es als long_script.sh. Verwenden Sie chmod, um es ausführbar machen.

chmod +x long_script.sh

Führen Sie das Skript mit dem folgenden Befehl. Versuchen Sie es mit “ja”, “y” und alles andere als Eingabe, einschließlich drücken der EINGABETASTE ohne Eingabe von text.

./long_script.sh

Zu bekommen ja, um unsere Antwort zu dem Skript die Frage, leiten Sie die Ausgabe von ja das Skript.

ja | ./long_script.sh

Einige Skripte sind mehr starr in Ihren Anforderungen und akzeptieren nur das Wort “yes” als positive Reaktion. Sie können “yes” als parameter ja, wie folgt:

ja, ja | ./long_script.sh

Nicht ja Sagen, Ohne zu Denken Es Durch

Sie müssen sicher sein, dass der input, den Sie gehen, um Futter in das Skript oder Programm auf jeden Fall ist gehen, um Ihnen die Ergebnisse, die Sie erwarten. Um in der Lage sein, diese Entscheidung zu treffen, müssen Sie wissen, und Fragen, was Sie Ihr Antworten sollte.

Die Logik im script-Befehl oder Programm möglicherweise nicht Ihren Erwartungen entsprechen. In unserem Beispiel-Skript könnte die Frage “wollen Sie aufhören? [y,n].” Wenn das der Fall war, wird eine negative Antwort erlaubt hätte, das Skript zu gehen.

Sie müssen vertraut sein mit dem script, Befehl oder-Programm, bevor Sie munter Rohr ja in es.

Mit ja Mit den Befehlen

In den Kinderschuhen steckt, wäre ja auch mit anderen Linux-Befehle. Seitdem die meisten von denen andere Linux-Befehle haben, Ihren eigenen Weg laufen, ohne menschliche Interaktion. ja ist nicht mehr erforderlich, um zu erreichen, dass.

Nehmen wir mal das Ubuntu-Paket-manager apt-get als Beispiel. Um eine Anwendung zu installieren, ohne die Taste “y” auf halbem Weg durch die installation, das würde ja wie folgt verwendet worden:

yes | sudo apt-get install fortune-mod

Das gleiche Ergebnis kann dadurch erzielt werden, dass die -y (angenommen) ja-option in apt-get:

sudo apt-get -y install fortune-mod

Sie werden sehen, dass apt-get hat noch nicht einmal seine üblichen “wollen Sie fortfahren? [Y/n]” Frage. Es ist nur, dass die Antwort wäre “ja.”

Auf anderen Linux-Distributionen, die situation ist die gleiche. Auf Fedora, würden Sie verwendet haben, diese Art der Paket-manager-Befehl zu einer Zeit:

ja | yum install fortune-mod

Die dnf-Paket-manager ersetzt hat yum und dnf hat seine eigene -y (angenommen) ja-option.

dnf -y install fortune-mod

Das gleiche gilt für cp, fsck, und rm. Diese Befehle haben jeweils Ihre eigenen -f (force) oder -y (angenommen) ja-Optionen.

So scheint es, dass ja verbannt worden, um nur die Arbeit mit Skripts? Nicht ganz. Es gibt ein paar mehr tricks in dem alten Hund noch.

Einige Weitere ja Tricks

Sie können ja mit einer Folge von Ziffern generiert, die durch seq zur Steuerung einer Schleife von sich wiederholenden Handlungen.

Diese one-liner Echos die generierten zahlen, um das terminal-Fenster und ruft dann schlafen Sie für eine Sekunde.

Anstatt einfach in Anlehnung an die Ziffern, um das terminal-Fenster zu nennen, könnten Sie einen anderen Befehl oder ein Skript. , Der Befehl oder das Skript gar nicht verwenden müssen, die Ziffern, und Sie sind nur da, um kick-start in jedem Zyklus der Schleife.

ja “$(seq 1 20)” | while read Ziffer; do echo Ziffer; sleep 1; done

Manchmal ist es nützlich, um eine große Datei zu testen. Vielleicht möchten Sie üben den Umgang mit der zip-Befehl, oder Sie wollen, um eine beträchtliche Datei zu testen, FTP-uploads mit.

Sie können schnell erzeugen große Dateien, die mit “ja”. Alles, was Sie tun müssen ist, geben Sie eine lange Zeichenfolge von text, zum arbeiten mit und leiten Sie die Ausgabe in eine Datei. Machen Sie keinen Fehler; diese Dateien schnell wachsen wird. Bereit sein, drücken Sie Strg+C, innerhalb von ein paar Sekunden.

ja lange Reihe von sinnlosen text für die Datei-Polsterung > test.txt
ls -lh test.txt
wc test.txt

Die erzeugte Datei hier dauerte ungefähr fünf Sekunden lang auf die test-Maschine verwendet, um die Forschung in diesem Artikel. ls berichtet, dass es 557 Mb groß sind, wc und sagen Sie uns, es sind 12,4 Millionen Zeilen.

Wir begrenzen die Größe der Datei, indem unter anderem als Leiter in unserem Kommando-string. Wir sagen, wie viele Zeilen in der Datei. Die -50 bedeutet Kopf lassen nur 50 Zeilen durch, um die test.txt Datei.

ja lange Reihe von sinnlosen text für die Datei-Polsterung | Kopf -50 > test.txt

Sobald es 50 Zeilen in der test.txt Datei, den Prozess zu stoppen. Sie brauchen nicht, verwenden Sie Strg+C. kommt Es zu einer anmutigen halt auf seinen eigenen Willen.

wc-Berichte, dass es genau 50 Zeilen in der Datei, 400 Worte, und es ist 2350 bytes in der Größe.

Obwohl es ist immer noch nützlich für die Fütterung Antworten in lang laufende scripts (und ein paar anderen tricks), die yes-Befehl nicht geht, zu werden ein Teil Ihres täglichen toolkit Befehle. Aber wenn Sie es brauchen, werden Sie finden, es ist die Einfachheit selbst—und das alles in sechs Linien von golden code.