Transkripte
1. Einführung: Hallo und willkommen, hier zu offenbaren. Warum ich dir etwas über Bash-Skripting beibringen möchte. Mein Name ist Eric Samara. Ich bin 36 Jahre alt. Ich habe ungefähr 20 Jahre Erfahrung im Betrieb eines Lennox. Und warum sollten Sie tun, um zu lernen, wie man Bash-Scripting macht, während sehr einfach alles
, was Sie auf Ihrem Computer tun. Meine große Mehrheit davon kann über die Befehlszeile erfolgen. Was auch immer auf der Kommandozeile getan werden kann, kann mit Skripten versehen werden. Sie können sich viele Skripte erstellen, um sich in Ihrem täglichen Aufgaben zu unterstützen. Also, ohne weitere Wartezeiten, lasst uns lernen, wie man schreibt.
2. Über die Notes.org: Okay, lassen Sie uns kurz hier über die Akte dieser Organisation sprechen. Der Grund, warum ich das tue, ist, weil der Organmodus einer einfachen
Textdatei so viel Funktionalität hinzufügt , dass es Ihre Take weg von diesen Kosten erheblich verbessern wird. Sie werden mit der Klasse mit einer einzigen Datei gehen, die alle Ihre Notizen enthält, die Sie in alles aufnehmen
möchten. Dass alle Informationen, die ich übertragen wollte, um die Übung zu referenzieren, all das innerhalb einer Textdatei. Also, wenn Sie nicht über den Mac ein Orgel-Modus und Stall, Ich lade Sie ein, um das freie Limit zu gehen ist Video-Nummer 14 wird Sie durch den Prozess und sehen Sie im nächsten Haus.
3. Sonderzeichen: Okay, nun, lasst uns anfangen. Würde zuerst Bash-Skripting. Ich möchte über die Sie,
äh über den Begriff von ein paar Sonderzeichen, die mit einfachen out beginnen, um Kommentare zu
einem Bass-Skript hinzuzufügen , während in einer Bash-Skript-Allianz. Beginnend mit diesem Zeichen ist ein Kommentar. Zum Beispiel wäre
dies eine nutzlose Krippe, weil es nichts tut. Es hat nur einen Kommentar dazu. Es kann auch dem Ende eines Befehls folgen. Aber Sie müssen ein Leerzeichen zwischen dem Ende Ihres Befehls und einem Befehlszeichen haben. Andernfalls ermöglicht es Ihnen, durch einen Fehler bash auch, Kommentare in eine Pipe eingebettet zu platzieren, zum Beispiel, und in vielen anderen Bereichen, das macht es sehr schwer zu lesen. Zweites Sonderzeichen, das ich durchgehen möchte, durch das Sie ein Lob Separator de Semi
Spalte ist , können Sie mehr als einen Befehl in der gleichen Zeile setzen. Also, zum Beispiel, diese hier Echo ello und das Echo, sie sind alle auf der gleichen Linie. Also, wenn ich die Ergebnisse hier entfernen sollte und ich hier gehe und ich die Kontrolle C Kontrolle drücken, sehen Sie, bestätigen Sie, dass ich den Mantel bewerten möchte. Ich habe meine Ergebnisse hier hinten. Ich weiß auch, dass normale andere Lob Trennung und Olynyk Shell auch in einem
Bash-Skript funktioniert , zum Beispiel
dieses, das einen,
ähm,
Prozess im Hintergrund gabelt ähm, und dann den Prozess startet, der danach kommt. Sie können das auch in ein Skript verwenden, um ah zu verdoppeln und hier ein zu verdoppeln, was bedeutet, dass der zweite Befehl ausgeführt wird. Wenn die erste Empfehlung, kann dies erfolgreich auch in ein Bash-Skript gesetzt werden. Was ist der Unterschied zwischen doppelten Anführungszeichen und einfachen Anführungszeichen? Der Unterschied besteht darin, dass doppelte Anführungszeichen die meisten Sonderzeichen von der
Interpretation erhalten , während einfaches Anführungszeichen gut erhalten bleiben, alle Sonderzeichen. Ich beginne hier mit einem Beispiel ohne Anführungszeichen in einer Befehlszeile und den doppelten Anführungszeichen. Also in dieser ersten Zeile hier wird
dies die ganze Datei im Schrägstrich var Schrägstrich Protokoll auflisten, das mit s warum beginnt und etwas
anderes danach hat , während die 2. 1 hier nach der Datei lesen sucht und s warum mit einem Stern am n. Also, wenn ich Kontrolle C-Steuerung hatte,
siehe, um den Code auszuwerten, den meine erste Befehlsliste Datei könnte, während meine zweite 1 mir sagt, dass es keine Datei s gibt. Warum Stern in diesem Beispiel hier zeige ich den Unterschied in der Interpretation von Double Anführungszeichen in einfache Anführungszeichen. Also habe ich eine Variable namens bar, die die String-Hilfe enthält. Also, wenn ich so Echo, können
Sie in den Ergebnissen sehen hier unten hallo hallo. Es ist ein richtiger Weg zu schreiben, aber es ist eine gute Angewohnheit, Ihre Variable in beiden Richtungen zu zitieren, also spiegelt das doppelte Anführungszeichen den Wert unserer Zeit wider. Das einfache Anführungszeichen gleich druckt buchstäblich Dollar var aus. Also, nur um das Beispiel zu zeigen, wenn ich die Ergebnisse lösche und ich hierher komme und ich Kontrolle zweimal sehen musste, sehe ich das Ergebnis meiner Befehlszeile direkt dort. Das ist es also für das einfache Sonderzeichen, an das man sich vorerst erinnern muss. In der nächsten Sitzung werden
wir anfangen, mehr in Variablen und Funktionen zu suchen
4. Bash: Nun schauen wir uns die Variable in bash an. Variablen werden aufgehoben. Grundsätzlich bedeutet das, dass sie unter der Haube alle Zeichenkette sind. Außer wenn Sie Variable nur Digit bash enthält, können Sie unsere zugelassene
Zusammenarbeit daran tun . Sehen Sie, um mich zu lesen, um zu wissen, wie ich diesen Codeabschnitt hier öffnen werde, weil ich es in
vollem Puffer möchte . Also hier deklariere ich eine Variable Acht. Es ist ein guter Abbott, aber es ist nicht erforderlich. Ich habe eine Zeichenfolge zugewiesen und ich erstelle eine zuweisende Variable. Schlagen Sie die Nummer zwei Ich Echo sie. Dann gehe ich herum und änderte acht auf Nummer vier und schlug zu einer Saite. Ich widerspreche sie. Sobald ich hier bin, erstelle
ich die Variablenszene und habe ihr das Ergebnis eines Pluszweis zugewiesen, was derzeit erlaubt ist, da sie nur Ziffern enthält. Dann versuche ich das Gleiche zu tun. Ich erstelle Variable D und ich versuche, es B plus drei zuzuweisen, außer Beat ist eine Zeichenfolge. Es ist momentan keine Ziffer, also lassen Sie uns die Ergebnisse davon sehen. Also, wenn ich Steuerungsszene hatte, dann können Sie die Ergebnisse hier sehen und Sie können den Fehler sehen, bei dem bash sich über den
Versuch beschwert , in der arithmetischen Operation für die Zeichenfolge und das Ergebnis dieser Variablen zu tun. Dies sind also die beschleunigten Grundlagen, wie variabel funktionieren. Wir werden sie genauer sehen, wenn wir den Abschnitt in
der nächsten Sitzung deklarieren oder setzen, werden wir in Funktionen suchen.
5. Funktionen: Nun schauen wir uns Funktionen an, die Grundlagen davon, eine Funktion zu deklarieren und sie Parameterfunktionen zu übergeben oder mit
der Funktion zu deklarieren . Beispiel für ein Schlüsselwort. Funktionieren Sie meinen Funk nach der Funktion namens. Es muss ein Leerzeichen geben, und danach können Sie den Funktionsinhalt mit den Klammern öffnen, aber Sie müssen ein Leerzeichen dazwischen haben. Sie können die Klammern hier dazwischen setzen, außer dass nichts hineingehen kann. Es ist also nützlich, wenn Sie die Gewohnheit haben, es für,Sagen
wir,
C-Programmierer zu tun Sagen
wir, . Aber Bash nimmt keine Argumente auf diese Weise. Du darfst nichts darin hineinlegen. Also schauen wir uns den ersten Abschnitt des Codes hier an, den ich habe. Zu Beginn dieser Klasse habe ich vergessen, etwas sehr Wichtiges zu erwähnen. Diese Zeile hier ist, was wir die sie knallt, und sie muss da sein. Dies ist der Pfad zum De-Shell-Interpreter oder Interpreter, der Ihr
Skript interpretieren wird , weil wir in bash arbeiten die erste Zeile jedes Bash
skripten. Script muss das sein, ähm, also gehen wir zurück zu der Funktion. Wie Sie sehen, deklariere
ich eine Funktion, die ich brauche, um ein Leerzeichen zu haben. Wenn es keinen Raum gibt, wird sich bash jetzt darüber beschweren. Dysfunktion hier. Was es tut, das zuerst wird widerhallt, dass Sie eine Funktion aufgerufen haben. Dann wird es testen, um zu sehen, ob der Umfang eins eine Null in verknüpft Wenn es ist,
das bedeutet, dass Sie keine Parameter übergeben haben. Andernfalls werden Ihnen die Parameter angezeigt. So greifen Sie auf die Argumente eine Funktion Nummer eins, zwei
Nummer drei und sie sind durch Leerzeichen getrennt. Das ist also das Gleiche, außer die Klammern hier zu verwenden. Wie ich schon sagte, es wird nicht benötigt. Aber wenn Sie die Gewohnheit haben, dem zu setzen, lassen Sie sie dort. Wenn Ihr c Programmierer, werden
Sie es mögen. Also lassen Sie uns Disco Dhere Control C Seepeitschen ausführen. Dort gehen wir und Sie können das Ergebnis dieser Funktion hier sehen. Also noch einmal lade
ich dich ein, da reinzugehen, mit Dingen
herumzusetzen, sie zu
ändern sie zu
brechen Und in der nächsten Sitzung werden wir uns ansehen, wie was von einer
Bash-Funktionzurückgegeben werden kann Bash-Funktion
6. Function: Okay, Was könnte von einer Funktion in bash zurückgegeben werden? Setzen Sie einfach eine Ganzzahl Onley Jeder Versuch, andernfalls zurückzukehren, führt zu einer näheren. Also in der Disco der Skoda hier, die ich habe, habe ich genau die gleiche Funktion, die ich vorher hatte außer durch entweder eine Null oder eine zurückgegeben. Ich habe dann eine Funktion namens Rückschlagventil für Rückgabewert und hier in erstellt. Und das wird mehr Sinn machen, wenn wir durch dia gehen. If-Anweisungen überprüfen, dass die ersten Parameter, die das erste Argument, dass die Funktion erhalten Wenn es über Null ist, das bedeutet, dass wir einen Fehler bekommen. Wenn es anderweitig bedeutet es Erfolg. Also rufen wir zuerst meine Funktion auf und dann haben wir aufgerufen oder funktionieren, um den Rückgabewert zu nehmen. Wann immer Sie den Rückgabewert Ihres letzten Ausführungsbefehls und Bash überprüfen müssen, überschüssigen
Sie es mit Ihnen,
greifen Sie mit dem Dollar-Fragezeichenzeichen zu. Sie führen also einen Befehl aus, es gibt einen Wert Null oder einen oder mehrere zurück, um zu überprüfen, ob dieser Wert in
der Variablen gespeichert ist . Es ist eine spezielle variable Sterne-Dollar-Site. Also tun wir das wieder würde meine Funktion mit einem Parameter überprüfen und dann dasselbe mit den anderen hier. Also, wenn wir schauen, ob wir mit Kontrolle C Kontrolle ausgeführt sehen, können
Sie es sehen. Obwohl Sie aufgerufen haben, haben Sie mir keinen Parameterrückgabenummer eine Funktion zurückgegeben. So geben Sie Wert von einer Funktion zurück. Was also, wenn Sie die Zeichenfolge zurückgeben müssen? Nun, Sie können die Zeichenfolge nicht zurückgeben, aber Sie können in gewissem Sinne eine Variable als Referenz
übergeben und an der Variablen innerhalb des Skripts selbst geändert. Wenn wir also sagen, dass Sie einen Wert zurückgeben müssen, müssen
Sie tatsächlich eine Variable außerhalb der Funktionen ändern, während Holz Das ist cool . Also hier deklariere ich var Ich mache eine Funktion Rev sind, die böse wird und wir werden in seinen
ersten Parameter setzen . Es wird setzen, was ich hier setzen. Also, wenn ich hier schaue, deklariere
ich meine Funktion. Ich habe eine Last meiner Variablen var zugewiesen Ich gehe mit Ich rief die Funktion an und ich habe meine Variable von unserer aber beachten Es gibt hier kein Dollarzeichen,
sonst wird es nicht funktionieren. Und dann, nachdem ich mit der Zeichenfolge gegangen bin, wird
var für L.
A Welt geändert haben . Also, wenn ich das gehe und ich es führe, können
Sie sehen, dass es widerhallt, bevor es gesendet wird. Rev sind gleich nach, so dass Sie nichts anderes als eine Ganzzahl aus einer
Bash-Funktion zurückgeben können. Aber Sie können eine Variable als Referenz übergeben, um eine Variable zu ändern, und die nächste Sitzung werden wir uns ansehen, deklarieren und setzen und ein wenig mehr in Variablen betrachten.
7. Deklaration: OK, nun schauen wir uns genauer in die Deklare-Anweisung an. Sie haben gesehen, wie ich es vor ein paar Minuten in einem Beispiel benutze, einen Schriftsatz
deklariere. Sie sind beide gleich. Deklarieren Sie eine bestimmte Version. Zwei von bash und typeset funktioniert auf anderen Shell wie eine Wurst deklarieren kommt mit Optionen, und wir werden ihn hier ansehen. Der Bindestrich, Unsere Option ist nur gelesen. Es ist eine grobe Äquivalente zum Meer. Konstanter Typ. Jeder Versuch, den Wert zu ändern, führt zu Fehlern. Also, wenn ich mir das Skript hier anschaue, Ich erkläre, lesen Sie nur unsere ove r und ich sagte es zu zwei. Ich habe eine Variable wiedergegeben. Dann versuche ich, es zu ändern und ich wiederhole die Variable erneut. Ich werde die letzten Ergebnisse entfernen. Führen Sie das Skript erneut aus, und Sie können sehen, dass die Variable gleich geblieben ist und bash durch einen Fehler, als wir daran teilgenommen haben ,
um es zu ändern Sie können declare verwenden, um integer zu deklarieren uh, mit der Option dash I. Also, wenn ich einen hier mein Ende deklariere, gebe ich es zu, dass ich es wiederhole. Dann versuche ich, es in eine Zeichenfolge mit Leerzeichen zu ändern und ich Echo mein Ende wieder. Und wie Sie sehen können, wirft Bash hier einen Fehler aus und die Variable bleibt bei Nummer zwei. Dann habe ich versucht, es in eine Zeichenfolge ohne Leerzeichen zu ändern. Und bash beschwert sich nicht, aber meine und gleichen Nullen. Der Punkt ist, wenn Sie eine bestimmte Ganzzahl deklarieren,
stellen Sie sicher, dass sie ein bestimmtes Integral bleibt. Andernfalls geben Sie
einfach nicht an, dass das ist, was Sie wollen. Sie werden weniger Einschränkungen haben, wo Sie in der Lage sein, es für eine gute Maßnahme zurück zu ändern. Ich werde die Ergebnisse hier entfernen und wir führen das Skript aus und wir haben jetzt die gleichen Ergebnisse um einen Neri mit Bashes die Dash-Pay-Option zu deklarieren. Also hier erkläre ich meine Eri ich initialisiert das Gebiet. Sie sind Raum getrennt Hier verwende ich eine for-Schleife, die mehr Details sehen wird, um
durch jedes Element innerhalb des Bereichs selbst zu gehen und ich Echo sie. Ich mache es auf eine andere Weise, mit einer while-Schleife und ich mache in diesem Fall tatsächlich in arithmetischer Operation. Also diese beiden werden wir im Detail weiter unten auf der Straße sehen. Aber wenn wir es jetzt tun, können
Sie sehen, wie es durch die Gegend geht und mir zu einem Teil des Beispiels gibt, können
Sie auch speziell eine Funktion deklarieren. Jetzt. Wenn Sie f widow Argument deklarieren, führt
es eine Liste aller Funktionen, die zuvor in diesem Skript definiert wurden. Also hier erkläre ich meine Funktion und gebe Schulden an. Es ist eine Funktion mit der Option Bindestrich F. Dann deklariere ich Variable meinen Funk, Torri. Aber ich sage nicht, was es ist diese Funktion, die ich nicht deklariert habe, und das ist kein Problem. Dies ist die Funktion zur Definition, die ich zuvor deklariert habe. Und jetzt habe ich gerade eine Variable der Funktion entworfen. Also ist mein Funk drei jetzt eine Funktion. Ich nannte sie 123 und dann deklarierte ich Dash F ohne Optionen. Sehen wir uns die Ergebnisse an. Du hast einen angerufen, zu dem du angerufen hast. Sie haben drei aufgerufen und dann listet es alle Funktionen auf. Im Skript wird der Strich bei Exporten beendet. Ich habe hier aufgelistet, denn wenn Sie sich die Optionen auf eigene Faust ansehen, werden
Sie sehen, dass es da ist. Dies werde ich später beschreiben. Es wird viel mehr Sinn machen, wenn wir ein besseres Verständnis der
bash-Umgebung und ihrer Exportfunktionen haben . und jetzt, von selbst. Alles, was wir zuvor gesehen haben, kann es sogar in Ihrer Shell in Ihrem Terminal selbst ausprobieren. Genau richtig, deklarieren Sie werden sehen, dass es Ihnen eine Reihe von Informationen ausdrucken wird. Es ist gut zu schauen. Also in der nächsten Sitzung werden wir mit Blick auf bedingte Anweisung beginnen, einschließlich der if-Anweisung in der case-Anweisung.
8. Wenn Aussage: Lassen Sie uns anfangen, die bedingte Aussage des bedingten Staatsmannes zu betrachten. Sein erster Blick auf die if-Anweisung Sie haben eine Referenz wie gewohnt hier. Werfen wir einen Blick auf die Struktur. Alle machen das in einem Puffer, so dass es einfacher ist, dass Sie if-Anweisung in einer Zeile wie dieser einfügen können. Wenn Ihre Testempfehlung hier wäre, dann würden Sie eine Semi-Säule benötigen. Der Raum ist wichtig. Den Ihren Code ausgeführt werden soll. Dasselbe mit dem Semi Colin in den Räumen. Das wäre also eine if-Anweisung in der einen Zeile, wenn Sie es machen können. Verdichtete Klammern sind nicht immer erforderlich, aber es ist eine gute Angewohnheit, aber Sie können es in eine Multizeile wie diese setzen. Wenn Ihre Testsequenz hier Semispalte wichtig ist und so das Leerzeichen ist, können
Sie es mit einzelnen Klammern oder doppelten Klammern verwenden. Sie werden sehen und verstehen, warum ein wenig weiter unten. - Was? Dies ist, wie Sie tun, wenn Sie eine else-Anweisung hinzufügen möchten, wenn Semi-Spalte den Ales und beenden mit f Sie und das ist, wie Sie Ihre wenn sonst tun würden, wenn eine else-Anweisung, Also beachten Sie, dass die else wenn auch eine Semi-Spalte und dann Schlüsselwort erfordert. Und, wie immer, sind
Räume wichtig. Was ist der Unterschied zwischen den einzelnen Klammern in den doppelten Klammern? Und hier haben wir ein nettes, gutes kleines Drehbuch. Dies ist eine Kopie und Einfügen von der dort geschriebenen Quelle. Im Gegensatz zu den einzelnen Klammern verhindern
doppelte Klammern das Wortaufteilen von Variablenwerten. Wenn R also an Bar mit Leerzeichen gleich ist, müssen
Sie var in einem Test nicht doppelten Anführungszeichen setzen, obwohl es eine gute Angewohnheit bleibt. Außerdem verhindert
die doppelten Klammern die Erweiterung des Pfadnamens, also wörtliche Zeichenfolge mit Platzhalterzeichen. Versuchen Sie nicht, die Einreichung zu verbrauchen. Denken Sie daran, unsere Ausnahme Denken Sie daran ,
zum Beispiel mit der LS-Datei am Anfang, mit doppelten Klammern, doppelt gleich und ah negativ gleich interpretieren String nach rechts als Shell glub Muster zu sein abgestimmt auf den Wert auf der linken Seite, zum Beispiel, Wert gleich Ventil. Okay, wir einen Blick auf dieses Skript hier. Hier ist, was ich getan habe. Ich habe meinen Wert von R eins und R zwei erstellt, die gleich sind. Und dann habe ich hier den Test wiedergegeben,
und ich habe das Zitat, einfaches
Anführungszeichen und doppeltes Anführungszeichen so verwendet , dass es genau das anzeigt, was
im Testabschnitt hier angezeigt wird . Und dann haben Sie die Ergebnisse. Also habe ich die einzelnen Klammern mit Div sind in doppelten Anführungszeichen Single back es mit der Variablen ohne Anführungszeichen. Doppelte Klammer würde Anführungszeichen
doppelten, doppelte Dracut ohne Anführungszeichen und dann eine andere Art von Gleichheitszeichen setzen anstatt eine gleiche Sache hier zu Gleichheitszeichen eine Klammer setzen, keine Anführungszeichen und so weiter. Also, wenn wir Disc geschuldet ausführen, können
Sie die Ergebnisse hier schön sehen. Und es wird ein gutes Beispiel dafür geben, wie man einfache und doppelte Anführungszeichen verwendet und welchen Unterschied es einfach macht, indem man hier einzelne oder doppelte Klammern hat. Sie sehen also, dass, wenn wir das Gleiche wie diese var ein Anvar tun, um gleich zu sein, als wir es getan haben, wie diese Bar wollen, dass Anvar nicht gleich
ist, es addiert sich nicht in den doppelten Anführungszeichen mit den doppelten Klammern, die sie gleich doppelten
Anführungszeichen sind doppelte Klammern ohne Anführungszeichen Sie sind gleich und die gleiche Sache hier dis übereinstimmt Dies entspricht nicht und diese sind gleich und so sind diese. Das gibt Ihnen ein gutes Beispiel für unterschiedliche Verhaltensweisen,
abhängig von doppelten Anführungszeichen, doppelten Klammern, einfachen Klammern. Ich lade Sie hoch ein, in das Todesskript zu kommen und damit herumzuspielen. Ändern Sie es, ändern Sie es, brechen Sie es an ihnen. Unterschiedliche Tests. Ah, wir werden Seymour in den möglichen Test, der im nächsten Abschnitt hier durchgeführt werden kann.
9. Wenn der Test auf Dateien: Ok. , Mal sehen,welche Art von Tests wir machen können. Eigene Dateien unter Links für eine vollständige Liste der Tests, die Sie auf Dateien tun können. Folgen Sie dem Link, der sich direkt oben befindet. Danach werden wir es schnell zusammen übergehen, aber lassen Sie mich zuerst die Ergebnisse entfernen. Hier. Mal sehen, was wir hier haben. Ich habe ein paar Beispiele. Uh, hier fangen wir an, eine Datei in eine Variable zu definieren. Und jetzt teste ich, um mit der Option Dash acht zu sehen. Wenn die Datei vorhanden ist, beachten Sie, dass in der if-Anweisung einzelne Klammern verwendet werden und wie gewohnt Leerzeichen wichtig sind. Nun, hier zeige ich Ihnen einen negativen Test. Dies ist eine Datei, die nicht vorhanden ist. Also, wenn die Datei nicht existiert, gehen
wir diese Schleife sonst, weil diese Schleife jetzt, Ich setze die Datei Desist, Liebe. Und dann überprüfte ich, ob die Datei existiert. Und dann habe ich überprüft, ob die Datei kein Verzeichnis ist. Also lassen Sie uns das schließen und Sie können die Ergebnisse sehen, die meine Viren mögen. Das tut es nicht. Und das hier ist eine normale Datei, und es ist kein Verzeichnis Jetzt lassen Sie uns einen kurzen Blick hier auf die Details werfen, denn es gibt eine
ziemlich umfangreiche Liste von Optionen, die Sie tun können. Eso, zum Beispiel, diese haben wir gesehen, um zu sehen, ob die Datei existiert, die wahr entspricht, auch wenn es ein Verzeichnis ist. Denn unter Lennix ist
ein Verzeichnis nur eine Datei, die die Eigenschaft hat, andere Dateien zu speichern. Ist Einssein zu wissen, ob es sich um ein Block spezielles Gerät handelt? Ein korrekter Charakter. Spezielle Akte. Sorry Block Special Datei und Director spezielle Dateien für mehr Details darüber, Sie können meine Kosten auf der in Lenox sehen. Alles ist eine Akte. Ich gebe eine sehr gute Erklärung dafür, was wir damit einen Bindestrich DS meinen, um zu wissen, ob es ein Verzeichnis ist. Dashi ist derselbe wie das, was? Äh, Nachmittag. Es ist eine normale Akte. Also kein Verzeichnis, kein symbolischer Link, kein Block Special oder irgendetwas davon. Nur eine einfache reguläre Datei. Äh, das ist eine symbolische Verbindung. Wie Sie sehen können, gibt es eine ziemlich umfangreiche sogar bis zu dem Punkt, dass in diesem der Test hier, es wahr ist. Die erste Datei wurde in letzter Zeit geändert als eingereicht. Do oder eine Datei existiert und fällt auf sie nicht. So können Sie sehen, dass es eine ziemlich lange Liste von umfangreichen Tests gibt, die Sie für Dateien innerhalb
der if-Anweisung im Bash-Skript durchführen können eso Ich lade Sie ein, diese Codestücke
dort zu bearbeiten ,
äh, sehen Sie, welche Art von -Tests, die Sie auf Ihrem eigenen Dateisystem durchführen können.
10. Binary Vergleich: OK, nun schauen wir uns Vergleichsoperatoren an. Wieder einmal haben
Sie die Referenz hier, die wir werden. Wir werden durchmachen, um sie am Ende schnell zu bekommen. Ich möchte Ihnen zuerst einen Bash-spezifischen Operator zeigen. Dies erzeugt einen binären Vergleich und sie sind mit Onley-Ganzzahlen zu verwenden, die ich
im Skript anzeige Was passiert, wenn Sie es mit einer String-Zeichenfolge verwenden, verschiedene Sätze von ah, Komfortvergleichsoperatoren. Also schauen wir uns hier an. Ich habe drei Variable ABC A und B gleich eins c gleich zwei und ich Echo die Informationen hier und ich habe ein einzelnes Zitat verwendet, um sicherzustellen, dass dies Dollar A und nicht Wert innerhalb von Dollar acht entspricht. Uh, jetzt lasst uns den Test durchlaufen, den wir hier durchführen. Also in diesem Fall hier überprüfen
wir, ob Dollar A gleich Dollarschlag ist. Und noch einmal schreibe ich mit dem einfachen und doppelten Anführungszeichen, wo immer nötig, so dass
Sie im Ergebnis den Test sehen, der durchgeführt wurde und die Ergebnisse, die Sie bekommen haben, also ist dieser hier nicht gleich. Dieser ah-Operator ist größer als größer oder gleich niedriger als niedriger oder gleich. Dann setze ich meine Variable A und B auf eine Zeichenfolge ein Wort. - Hallo? - Hallo. Sie sind sie sollten dazu führen, gleich zu sein. Außer Sie werden in dem Beispiel sehen. Und diese dürfen nicht für Stärke verwendet werden. Also lassen Sie uns das hier schließen. Aber das ist die Ergebnisse laufen. Also haben wir die Variable, und jetzt können Sie den Test und das Ergebnis sehen, das wir bekommen haben. Nun, hier haben wir versucht, hier haben wir versucht,
zwei Saiten zu
vergleichen. Dies ist der Fehler, den bash uns gegeben hat, weil es
stattdessen einen ganzzahligen Ausdruck erwartet hat. Und das führt dazu, dass sie nicht gleich sind, obwohl die beiden Saiten tatsächlich gleich waren. Sehen wir uns jetzt an, wie es aussieht. Wenn wir doppelte Klammern anstelle von einzelnen Klammern verwenden, funktioniert
es das gleiche Gewicht, solange Sie ganze Zahlen Ah verwenden,
um jetzt zum Vergleich durchzuführen, wird es hier anders funktionieren, wenn ich es in String ändere. Sehen Sie, dass A und B nicht gleich sind in Ordnung, und ich führe den gleichen Vergleich hier, aber würde doppelte Klammern lassen Sie uns die Ergebnisse schnell sehen. Zuallererst gibt
es keinen Fehler, aber es sagt mir, dass a gleich ist, um in meinen Strings zu sein, obwohl sie nicht gleich sind. Eso erinnerte sich an diesen Vergleich. Sie sind binäre Vergleichsoperator, und sie sind für ganze Zahlen auf Lee verwendet werden. In der nächsten Sitzung betrachten
wir häufigere Möglichkeiten, einige Tests durchzuführen.
11. Wenn mit Klammern: Okay, jetzt schauen wir uns die gängigeren Möglichkeiten an, Uh zu testen, das ist böse Bezeichnungen hier, vor allem. Ah, eine kleine Warnung. Häufigere Möglichkeiten, um zu testen, bedeutet mehr Möglichkeiten, um verwirrt zu werden, wie die Dinge funktionieren. Bashes eine hässliche Sprache zum Spielen. Sehr stark, sehr mächtig, aber sehr hässlich. Also zuerst werden
wir uns den Unterschied in der if-Anweisung mit einfachen Klammern ansehen, die Dan mit doppelten eckigen Klammern verwenden und dann doppelte Klammern wie diese verwenden, kann das Ergebnis der folgenden drei Skripte ein wenig verwirrend sein. Was wichtig ist zu beachten und zu merken ist, dass einzelne Klammer, wenn Test gut funktioniert, um zu überprüfen ob ganze Zahlen oder gleich oder doppelt gleich sind, dies funktioniert nicht sehr gut in einem einzelnen Klammerpunkt, da einzelne Klammern gut für gleich oder nichts bei alle. Einzelne Klammern sind nicht zuverlässig, die am wenigsten zu sehen, wenn der Vergleich mit diesen Operator durch die re Betreiber funktioniert gut in einzelnen Klammern von feindlichen Operatoren ist derjenige, den wir gerade gesehen. Lassen Sie uns also einen kurzen Blick hier auf den Code für den Ganzzahlvergleich mit einzelnen Klammern werfen. Also, was ich in diesem Mantel getan habe, ist, dass ich variable Hilfe eingerichtet habe, in C bin und dann den aktuellen Test geschrieben habe, und ich habe eine Klammer benutzt. Und ich habe geschrieben, dass die Zeichenfolge in der Art und Weise, dass sie genau das widerspiegelt, was
hier geschrieben wird , und das Minusende sagt Echo, keine neue Zeile am Ende zu setzen, so dass diese oder dis-Linie gut, Echo am Ende des 1. haben auch hinzugefügt, als ob die Ergebnisse entweder richtig oder falsch wären. Also, wenn wir schließen, schauen wir hier runter. Ja, lass uns gehen, denn das hat die Ergebnisse gedreht, damit du sehen kannst, dass du das hier richtig hast? Das hier, richtig. Das haben sie falsch verstanden, das haben sie falsch verstanden. Das hier haben sie falsch verstanden. Diese eine Tour ist irrtümlich. Ah, und so weiter. Also, wie ich schon sagte, die einzelnen Klammern sind nur gut für die beiden Zeichen hier oder den binären Operator, den wir in der Vergangenheit
gesehen haben . So könnte es einfacher sein, einfach daran zu denken, eine einzige Halterung für Batteriebetreiber zu verwenden. Das ist der Blick auf seine Ursache. Was für diese Ergebnisse jetzt? Doppelte Halterungen Also hier habe ich das Gleiche getan. Echo der aktuellen desde weg es geschrieben wird, und wenn Sie bemerken, dass es zwei hier, die ich nicht in diesem Fall setzen, weil sie nicht funktionieren. Also lasst uns das Ergebnis davon laufen. Und wie Sie sehen können, dass es bereits besser ist, alle jetzt zu bekommen, wenn Sie diese beiden hier bemerkt haben, wenn Sie das erste Beispiel im zweiten oder tatsächlich im zweiten Beispiel fehlen, funktionieren
sie etwas anders. Vorherige Operatoren können auch auf die gleiche Weise verwendet werden. Jetzt verwenden wir den Test mit diesen Zählerklammern und dann versuche ich erneut Test
im Beispiel erwähnt . Sie können sehen, dass sie es gerade jetzt haben wir versuchen, vorherige Tests mit diesem. Dies bewirkt Amerikaner und versucht eine Aufgabe. Aber das funktioniert richtig, dissed funktioniert richtig. Dies funktioniert nicht richtig, weil es versucht und Zuweisungen zwischen einem gleichen Be und das ist gut. Das ist gut. Wie Sie sehen können, bietet
die if-Anweisung mit dieser Klammer Ergebnisse ihrer eher wie andere Sprache, wo ein einfaches Gleichheitszeichen grundsätzlich Zuweisung gegeben wird. Ist das Testen, um zu sehen, ob sie gleich sind? Eso Sie? Das Richtige ist, dass Sie besser daran sind, diese Zähler Klammern und Ihre
if-Anweisungen zu verwenden und dann die einzelnen Klammern für binäre Operatoren in der nächsten Sitzung hier. Und du hoffst, Entschuldigung. Und Sie können in der kurzen hier sehen, wenn binäre Operator verwendet einzelne Klammern zu tun und
diese Klammer verwenden , um jede andere Art von Operation zu tun. Immer eine gute Angewohnheit, Ihre Variable in der nächsten Sitzung zu zitieren, werden
wir uns den String-Vergleich ansehen.
12. Erstelle eine for-Schleife: Okay, jetzt fangen wir an, in Schleifen zu schauen. Die 1. 1, die ich schauen will, was durch ist die Liebe? Wieder einmal haben
Sie hier einen Link zur Dokumentation. Uh, die Struktur der vier Gruppe ist sehr einfach. Vier Artikel in weniger tun. Es ist also ein bisschen von der gleichen Struktur wie die if-Anweisung hier, wir haben ein Beispiel für eine Vier-Schleife, die durch einen Bereich geht. Schau dir den Code hier an
, den du also deklariere ich einen Bereich, der von einfach Zahl getrennt basiert. Also vier Artikel in. Und das ist, ah, das Format, um bash im Grunde zu sagen, alle Elemente in der Gegend zu verwenden. Äh, tun Sie Echo-Artikel. Das ist also ein sehr, sehr einfaches Beispiel. Und wie Sie erwarten würden, dass jedes Element in der for-Schleife hier aufgelistet wird, verwende
ich eine for-Schleife, um das in der Befehlszeile angegebene Argument zu durchlaufen. Nehmen wir an, wie Sie das Argument durchlaufen würden, das Sie beim Aufruf des Skripts setzen. Dies ist also das Format, um die Anzahl des Arguments zu erhalten, das an descript übergeben wurde. Wenn es gleich Null ist, haben
wir im Grunde einen Fehler außer kaltem. Ansonsten drucken
wir die Anzahl der Argumente aus, und wir gehen es jetzt mit,
ähm,
Organ-Modus durch ähm, . Grundsätzlich ist die Kopfzeilenspalte Befehlszeile und alles ist Platz. Getrennt wird zu den Kommandozeilen-Whips hinzugefügt. Also gehen wir hin. Argumentlänge ist drei und drei Argument, das ich durchlaufen habe. Ah, wenn Sie verpasst haben, dass dieses Jahr den Standardfehler in die Standardausgabe umleiten
, so dass, wenn wir mit einem Organ bewerten, wenn es einen Fehler gibt, Prinzip und das Ergebnis statt zu öffnen und Sie puffern. Aber jetzt kann ich hier ohne Argument versuchen, indem ich sie entferne und Sie können eine Versorgung sehen, eine Reihe von Argumenten. Das ist also die Einfachheit einer for-Schleife. In der nächsten kleinen Sitzung gehe
ich mit dir durch die Wildnis.
13. Während und loop: Jetzt schauen wir uns schnell die wilde Schleife an. Dasselbe, was Sie einen Link zu haben, Ah, erweiterte Dokumentation im Beispiel hier habe ich eine while-Schleife verwendet, um einen Neri
eso zu durchlaufen . Das Gleiche. Ich habe die gleiche Variable hier deklariert. Dann initialisiere ich eine Variable auf Null. Ich gehe eine Reihe von Artikeln in der Gegend selbst abgegrenzt bekommen. Ich Eigenkapital und für ein gutes Maß. Und dann ist es einfach eine Weile. X ist Bill O Arlen, das ist die Anzahl der Elemente in der Gegend hallt es. Und wenn Sie eine Inkrementierung in bash durchführen möchten, müssen
Sie es zwischen diese beiden Klammern setzen. Ah, es ist im Grunde jede arithmetische Operation auf Ziffern muss in diese Klammern gesetzt werden. Jetzt verwende ich hier die gleiche Schleife, aber um zurück zu gehen, machen Sie ein bisschen eine Referenz. Und die Art und Weise, wie die if-Anweisung mit der Klammer und der Binäroperation und dem gemeinsamen
Operator arbeitete . Also ist die while-Schleife hier die gleiche. Sie sehen, dass
ich, um dieses Symbol zu verwenden, doppelte Klammern verwende. Ich kann dasselbe wie jede von Anweisungen, einzelne Klammer verwenden und einen binären Operator verwenden, um es
auch zu tun . Lassen Sie uns es schnell ausführen, nur zum Spaß daran, und es druckt Ergebnisse aus, wie wir erwartet hatten. Lassen Sie uns schnell einen Blick auf die bis Schleife werfen. Es ist sehr ähnlich wie die Wildschleife, außer dass es bis zu den Testergebnissen ausgeführt wird. Wahr. Ah, anstatt während die Testergebnisse falsch oder Wahrheit im anderen Sinne. Wie auch immer, eso ich mache das Gleiche. Ich erkläre eine luftige. Ich bekomme die Anzahl der Elemente, außer dass, bis X bei der Anzahl der Elemente im Bereich gleich ist, ich Zehenschleife auf der Innenseite mache. Dasselbe, um x zwei zu erhöhen. Lassen Sie uns es nur für ein gutes Beispiel ausführen. Da gehen wir. Es läuft so, wie wir es erwartet haben.
14. Input: OK, nun schauen wir uns die Eingabeausgabe, Umleitung und die Schleifen an. Ah, wenn Sie nichts über Eingabe und Ausgabe einer Richtung wissen, empfehle
ich Ihnen, hier Dateideskriptoren,
Socket-Umleitung und Prozesssubstitution zu diskutieren . Dort wird es ausführlich erklärt. Ähm, hier ist ein Link als Referenz, wie üblich. Uh, eine andere Möglichkeit, Schleife zu steuern, besteht darin, die Datei zu reedy Eingabe von normalerweise wird der Befehl gelesen dafür verwendet, solange die Eingabe oder in die Schleife eingespeist wird. Es geht weiter, wenn es aufhört, in die Schleife zu kommen. Dies ermöglicht ein ziemlich raffiniertes Skript. Wenn Sie dieses Wissen mit einem guten Verständnis von Dateitypdateideskriptor und
Socket kombinieren , können
Sie Alou steuern, indem Sie Daten aus einer Datei auf einem Remotecomputer einfügen. Um, dieser Abschnitt hier ist, wenn Sie die Steuerung C Kontrolle Z drücken, um es auszuwerten, wird
es Ihnen das Hilfe-Handbuch für die Lese-Option direkt in Ihrer Orig-Datei drucken. Ok, nun, schauen wir uns den Code in diesem Abschnitt hier an, Also habe ich zuerst deklarieren Variable definiert und ihm den Wert einem Pfad für Dateinamen zugewiesen, nicht
existiert. Ich habe die Datei nicht mit dem Befehl touch erstellt. Dann gehe ich fort, einen feinen Befehl im Root-Verzeichnis auszugeben. Ich mache das, weil es garantiert ah,
Standardfehler und Standardausgabe gibt . Würde das gegeben loben? Da einige Ordner habe ich keine Berechtigung für den Zugriff auf eso. Was hier passiert ist, ist, dass ich die Standardausgabe in eine Datei umleite
und dann gehe ich fort, den Standardfehler in den Standardausgabe-Feed umzuleiten, der in eine Datei geht, die ich erlaubte Zeilenanzahl auf Null setze, und dann starte ich meine Wand Befehl während Schleife waren, um den Befehl darauf zu lesen. Und alles, was Luke tut, ist, dass es das Linienlager erhöht. Dies ist die Eingabe-Umleitung, die hier stattfindet. Ich setze dieses Symbol und den Namen der Datei und lesen wird Zeile für Zeile lesen, die ihm gefolgt bis es leer ist. Sobald das erledigt ist, wird
es ausdrucken oder Linienlager. Dann habe ich aufgeräumt. Wir müssen auch keinen Topf erstellen, den wir erstellen können. Wir können Prozesssubstitution verwenden, die auch in der Klasse, die ich
Ihnen früher gezeigt habe, genauer beschrieben wird, also sagten wir, die Zeilenanzahl auf Null, die while-Schleife bleibt gleich, wir starten unsere Eingabe-Umleitung. Aber anstatt ihm einen Dateinamen zu geben, geben
wir ihm eine Prozessersetzung, und das wird die gleichen Ergebnisse liefern. Nun, lassen Sie uns die Ergebnisse dieses Befehls sehen. Wenn Sie den Befehl fine zum ersten Mal ausführen, kann
es eine Weile dauern, bis die Ergebnisse angezeigt werden. Mich. Es liegt daran, dass die Suche eingelöst wurde. Okay, also habe ich die beiden Informationen hier. Und wenn ich will, können Sie
vielleicht herausfinden, warum die Zeilennummern nicht die gleichen sind.
15. Break und fortfahren: Guten Morgen. Lassen Sie uns schnell unseren Schleifenabschnitt hier beenden. Wir werden dies mit Erklärung der Empfehlungspause beenden und eso fortsetzen, wie in der Regel einen Referenzlink haben. Groß Hier schauen wir uns zuerst eine Pause Befehl an. Es wird verwendet, um ein wenig zu stoppen, bevor es normal ist. Beendet eso es sucht hier schnell zu programmieren disco Dhere Sie möchten es exportieren Nicht ausgewertet, weil es Benutzereingaben erfordert. Also erkläre ich Funktion Person Prozess kommen und von dort artikuläre Variable und meinen Platz Alle Befehle, die als Argument in die Variable cmd empfangen werden und dann
ausgewertet und ich kehrte zurück, um den Wert eso hier zurückzugeben. Wenn Sie etwas eingeben, wird
es die PERL sagt Befehl mit der Eingabe aufrufen, die Sie gegeben haben Wenn wir einen
Rückgabewert über Null erhalten , wir Echo einen Fehler. Wenn Sie quit eingeben. Wir demonstrieren den Break-Befehl hier Also werde ich diesen Code exportieren, indem ich die Kontrolle
steuere, die du kontrollierst, vnt und von dort bin ich in der Lage, dort zu tun, gehen wir oder wenn ich es einfach lege importiert es alle Befehle überträgt, die ich ihm tatsächlich gebe. Und wenn ich setzen Beenden Anzeige Pausen. Schnell verdünnen. Schauen wir uns an, Befehl hier weiter, um eine Anweisung
fortzusetzen, wieder Belüftung für eine Weile und bis Schleife Sie wirken auch das gleiche für eine ausgewählte Lupine , die später gesehen werden wird. Wenn Sie es in einer for-Schleife zur steuernden Variablen verwenden Nehmen Sie den Wert des nächsten Elements in der Liste, wenn Sie es in einer Weile oder bis Schleife verwenden, wird es mit der gleichen Schleife fortgesetzt. Es war nicht so. Ich werde hier ein Beispiel geben. Dies ist ein continue Befehl, der in einer for-Schleife verwendet wird. Also erkläre ich in Eri, dass ich es durchgehe, wenn x endet Position Nummer drei Dies ist, wenn wir den Befehl fortsetzen senden und ansonsten ist es X gleich X alt ist normal. Du wirst das Lupul fertig sehen? Was meinst du mit Modifikation? Hier? Es ist behoben, dass,
äh, und wie Sie sehen können, wir zu unserer dritten Position kommen und wir schicken, um weiter zu loben, aber alles geht normal weiter. Jetzt schauen wir uns in eine Weile an. Kommen Sie hier rein, es wirkt anders. Also deklarierte ich den Bereich, den ich mein X setze, gleich Null. Ich fange an, durch es zu gehen, wenn ich Position drei Ich schicke, um fortzufahren. Empfehlen. Wenn Sie dies hier empfehlen, werden
Sie mit einer Endlosschleife enden, denn wenn die Fortsetzung gesendet wird, wird
X immer noch gleich behandeln, wird es nicht an die nächste Position verschieben. Also setze ich, dass wagen die Beschuldigung von X, damit es in der Lage sein, fortzufahren, Wenn Sie
nicht tun , Wenn Sie empfehlen, die Belastungen von Eiern und Sie bewerten es im Organ-Modus, Ich werde Ihnen hier zeigen. Lass es uns tun. Also lasst uns das kommentieren. Also, wenn ich versuche, es jetzt auszuführen, wird
die Ausführung nicht abgeschlossen. Und es scheint weniger zu sein. Wenn iMac abgestürzt ist, drücken Sie
einfach control g, um die Auswertung midterm oder irgendwo eso zu beenden, die Ihnen den
Unterschied zeigt und zwischen der for-Schleife und einer Weile fortsetzt, oder bis das unsere Klassen oder Abschnitt auf Schleifen beendet. Im nächsten Video werden
wir uns ansehen, wie Sie Argumente an,
äh,
Ihr Skriptübergeben äh, Ihr Skript
16. Streiften: Guten Morgen. , Sehen wir uns
jetzt an,wie wir Argumente an Ihr Skript übergeben haben. Ah, Übergabe von Argumenten an Ihr Skript, wo er ist sehr ähnlich zu einer Übergabe Argumente zu einer Funktion, die er
ab Dollar Juan zugegriffen werden kann , Dollar zwei und so weiter. Lassen Sie uns zuerst einen Blick und ein wörtliches Beispiel hier werfen, indem
wir eine Liste von,
ah,
Befehlszeilenargument mit einer vier Schleife durchlaufen ah, . Also öffnete ich mich mit ihr Tasche und dann vier ich und das ist zusammengebaut, um zu handeln,
testen Sie alle Argumente in einer for-Schleife do Echo Dollar. Ich habe so ein sehr einfaches Skript und einen Orgelmodus hier gemacht. Dies ist das Argument führt, dass ich übergeben und ich werde zwei weitere Argumente übergeben,
die ich bewerten werde . Und wie Sie sehen können, sind
meine Guan und alle Argumente, die ich auf der Kommandozeile übergeben habe. Das ist also ein einfacher Weg, 30 Befehlszeilenargument zu überwinden. Würde A für Schleife Lassen Sie uns einen Blick darauf werfen, es mit einem wilden eso zu tun. Ich initiiere extra Null. Ich weise alle d Befehlszeilenargumente einem variablen Bereich zu, rufe unsere Eier auf, und ich mache meine üblichen, während X unter dem Zahlenelement ist und der Bereich argh hallte M und inkrement DX. Also, wenn ich die Ergebnisse ausdrucke und Sie können sehen, dass meine Befehlszeilenoption oder hier obwohl wie geht es Ihnen? Und sie werden jeweils in einer einzigen Zeile in der nächsten Sitzung gedruckt, oder gehen zu sehen, wie Sie Lennox Stil Argument in Ihr Skript implementieren können, ich meine,
wie, wie, kurze und lange Option Kombinieren Option, die, Sag, du tust ls Dash l acht eso Wir werden uns das bei der nächsten Sitzung hier ansehen.
17. Linux Teil 1 (Raum getrennt): Wie implementieren wir Lennox-Stilargumente in Ihr eigenes Skript? Sie sind drei gängige Wege, dies zu tun. Lassen Sie uns zuerst die erste 1 zum Leerzeichen getrennte Option betrachten. Sie würden Ihr Skript mit der Fall-away Met -Methode aufrufen. Sie würden den Namen des Skripts nennen,
und dann könnten Sie eine kurze Option übergeben. Sie würden den Namen des Skripts nennen, Lässt einen Bindestrich A oder Dashti oder Bindestrich V. Wenn die Option einen Wert annimmt, würden
Sie ein Leerzeichen in den Wert einfügen. Oder Sie könnten dieselbe Methode verwenden, außer mit langen Optionsnamen als Leerzeichen und Wert. Wenn es einen benötigt. Diese Methode beendet nicht alle Handle. Kombinieren Option lässt einen Strich L acht zwei Optionen zur Verfügung zu stellen. Werfen wir einen Blick auf den Code hier. Eso hier, ich deklariere es drei Variable. Nun verwendet
diese Technik eine Schlüsselwert-Technik. Es behandelt kurze und lange Option die Art und Weise dieses Programm So würde ich eine vier Schleife wie in
diesem Jahr s O
erstellen diesem Jahr s O Das bedeutet, dass, während die Anzahl der Argumente in der angegebenen Liste über Null liegt, weiter gehen. Wir haben dem Schlüssel Nummer eins zugewiesen. Haben wir die Dickey für den Fall, dass es gegen alle diese Option überprüft Hier bieten wir eine kurze Option als die Torte zusammenbauen, die bedeutet oder im Fall Anweisung. Also könnte ich es auch tun. Und das ist ein nicht so bieten, dass wäre so, dass diese Option
verfügbar und gut in Richtung einer Befehlszeile machen würde . Dann habe ich die Wertoption der Nummer zwei zugewiesen. Wenn Sie also eine Schleife wie diese machen, wird
es immer eine Schlüsselwert-Möglichkeit sein, sie zu sehen. - Was? Nun, wo der erste Teil die Option ist. Die kurze Option lange Option, die in Schlüssel geht, die Nummer eins und Nummer zwei ist, wird zum Wert der Option selbst. Sobald wir diesen Schlüssel und Wert verwendet haben, müssen
wir die Anzahl der Argumente verschieben, die noch in oder weniger zu verwenden sind. Im Grunde, dieser hier, also mache ich eine Verschiebung zu diesem bedeutet, wird meine Argumentliste verschieben,
indem man zum 1. 1 auf der Liste entfernt, fällt in der nächsten an Ort und Stelle zu kommen. Also dasselbe für die Strichdatei. Nun ist
Dash D keine Nicht-Option, die ein Argument annimmt. Du lieferst es einfach oder nicht. Und so verschieben wir uns nur um eins. Und das hier ist für jede andere Option, die wir nicht über die Aufnahme wissen. Wir kennen die Option nicht,
Uh, Uh, und dann stellen wir den Shift-Befehl zur Verfügung. Nachdem das alles erledigt ist, drucken
wir einfach den Wert unserer drei Optionen aus, die wir eingerichtet haben. Also lassen Sie uns sehen, was die Ergebnisse dieses Jahres. Also noch einmal, habe ich mein Kommandozeilenargument hier durch diesen Teil übergeben, alles vor der Umleitung von Standard, überhaupt. Also, wenn ich es so mache, siehst du das? Das übergebende Argument und es hat alle meine Optionen. Im Moment gehen wir für den Fonds und bieten eine unbekannte Option. Aber das sagt mir, dass es die Option nicht kennt. Iss jetzt Dash. Wenn ich einen Fehler machen und eine Option dafür bereitstellen würde, denke
ich, würde einen Wert enthalten, ist aber nicht in dem Fall. Es sieht es einfach als eine Option, und es gibt einen Fehler, weil es nicht weiß, was damit zu tun ist. Jetzt. Wenn ich versuchen sollte, eine über eine kombinierte Option, Sie sehen, es erkennt diese beiden Option an dieser Stelle nicht. So würden Sie in der nächsten
Sitzung eine durch Leerzeichen getrennte Lennox Tell Argumentliste implementieren , wir werden auf eine andere Weise eine gleiche getrennte Methode betrachten.
18. Linux Teil 2 (= getrennte): Sehen wir uns jetzt eine andere Methode an. Wir werden uns das Gleiche getrennt ansehen. Ah, tust du? Dies ist ziemlich ähnlich dem Raum eins, außer dass anstelle eines Leerzeichens wir ungleiches Zeichen setzen, diese Methode beendet auch nicht alle Kombinationsoption. Lassen Sie uns also einen Blick auf den Code hier werfen, der etwas anders ist. Die Schleife ist in diesem Fall für I anders und das bedeutet, dass alle Argumente durch die
Befehlszeile übergeben und dann machen wir einen Fall auf der I. Und wenn Sie sich die Optionen, die wir haben, sind kurze Option sind Gleichheitszeichen und dann ein
Sternsymbol . Also, im Grunde werde
ich Ihre ganze Strichoption gleich enthalten, ich beende. Der Wert wird darin enthalten, dass ich Variable und unten erste Zeile hier
extrahieren wir tatsächlich , was nach dem Gleichheitszeichen kommt und es unserem Wert zuweisen. Also müssen wir nur um eine gleiche Sache für die Strichdatei und dasselbe für, wenn wir die Optionen nicht kennen. Lassen Sie uns also schnell das Skript ausführen und sehen Sie die Ergebnisse vorbei, so wie Sie, es funktioniert genau so, wie wir es erwartet hatten. Es funktioniert genau wie das Leerzeichen getrennt, außer wir setzen ein ungleiches Zeichen. Aber die Struktur des Codes ist etwas anders. In der nächsten Sitzung werden
wir uns die Verwendung von get ups bash anschauen, dass diese Zeit eine kombinierte Option erfordert.
19. Linux Teil 3.1 (getopts): Sehen wir uns nun unsere dritte Option an, Lennox-Stil Argument mit bash Bail temp zu implementieren. Holen Sie sich Offizier empfehlen zuerst bekommen up. Onley behandelt kurze Option. Es gibt keine lange Option darin Aber es behandelt auch, ändern oder kombinieren Option wie dash V f oder L s Dash L. A. Es gibt einen anderen Referenzlink hier. Ich kroch einfach runter zu den Get Ups Eine Notiz. Wenn Sie laufen, Mann und dann schreiben Sie get opt no s Es ist nicht das gleiche. Also erhalten die Verwendungen hier den String-Namen und die Argumente in den Klammern. Lassen Sie uns zunächst einen Blick in mehr Details über die Nutzung werfen. Also aufstehen ist ein bash Bilton up String die Optionszeichen Toe Look enthalten, zum Beispiel. Oder wenn G bedeutet, dass wir nach den kurzen Optionen suchen, die geschuldet sind, fragen Sie FSG oder eine beliebige Kombination. Lassen Sie uns also einen Blick auf den Beispielcode hier werfen. Also mit einer while-Schleife, während Sie aufstehen, äh, hier setzen Sie die Optionen, nach denen Sie suchen, und das ist die Variable, die enthalten sein wird . Also geht es im Grunde durch. Die erste Option wird den Optionsnamen in O P.
Tsetzen T und ein Echo ausführen. Also lassen Sie uns die Ergebnisse hier sehen, damit Sie sehen können, dass ich meine Befehlszeilenargumente hier lege, und es lebt sie in der gleichen Reihenfolge. Wenn ich sie so ändern sollte, wird
es die Ergebnisse ändern. Und wenn ich zu Mitte eins war, zeigt
es es nicht. Und was passiert, wenn ich einen anderen setze, den ich nicht suche? Sie beklagt sich über eine illegale Option. Jetzt. Wenn auf ein Zeichen eine Spalte folgt, wird erwartet, dass
die Option ein Argument hat. In diesem Fall spielt
Get Ops das Argument in der Variablen ab, wobei die Groß- und Kleinschreibung beachtet wird. O P. T A R G Kate. Nein, wir einen Blick auf den Code hier schnell. Also deklariere ich eine Variable, mit der ich spielen kann. Nun, in diesem Beispiel hier, wird erwartet, dass
die Option f ein Argument hat. Also suchen wir nach der Option O g. Standalone und F wird erwartet, ein Argument zu haben. Dies ist unsere Schlüsselstruktur hier, wo wir Wert 20 p.
T a r gzuweisen T a r g Wenn es eine Notiz ist, und dann drucken wir unsere Option Also lassen Sie uns einen Blick hier werfen, wenn ich unser
Kommandozeilenargument tut , dass ich Senden an den Codeblock, der entfernt wird, nur damit wir die neue Luft sehen können, die Sie gehen, und Sie können unsere Optionen direkt hier sehen. Nun lasst uns dies ändern und lasst uns ein Leerzeichen für die Option „Bindestrich F“ setzen. Es macht keinen Unterschied. Es platziert es immer noch, und Sie bemerken, dass hier jetzt kein Platz dazwischen ist. Wenn ich inmitten des Arguments hier wäre, wirft
es uns einen Fehler, dass die Option ein Argument erfordert. Ich werde das Argument ersetzen, wo es hier geht. Wir führen es aus, und es gibt unsere Möglichkeiten. Jedes Mal, wenn es aufgerufen wird, spielt
get UPS die nächste Option in eine Variable und den Index des nächsten Arguments,
dasin o p
T i N D
verarbeitetwerden soll in o p
T i N D
verarbeitet T i N D das . Während diese Variable B ist, wird jedes Mal, wenn das Shell-Skript beteiligt ist, auf eins gesetzt, es wird nicht automatisch zurückgesetzt nach. Wenn Sie get ups mehrfach aufrufen wollen, muss
diese Variable manuell zurückgesetzt werden. Also lassen Sie uns einen Blick auf das Beispiel hier. Also deklariere ich meine Variable, um mit zu spielen und ich Echo, was die OPD I Andy Variable? - Es ist eingestellt. Wenn das Skript startet, gehe
ich durch die Optionen und ich echo diese Variable jedes Mal, wenn wir durch die Schleife gehen. So werden Sie sehen, dass es nach oben gehen Jetzt sind wir vorbei, dass while-Schleife und ich gebe Ihnen die gleiche Variable hier. Jetzt versuchen wir, die gleiche Schleife zu wiederholen, ohne die Variable toe eins zurückzusetzen, und dann werden
wir sehen, was passiert. Also lassen Sie uns die Ergebnisse hier ausführen. Meine Optionen sind die gleichen. Sie sind alt, gültig, also können Sie sehen, dass wir bei einem beginnen. Dann gehen wir zu Dann gehen wir zu drei und dann gehen wir zu fünf, weil der letzte eine
Option hat . Jetzt versuchen wir, die gleiche Schleife zu wiederholen, ohne sie zurückzusetzen. Und Sie können sehen, dass wir das letzte Echo erreichen, ohne etwas hier unten am Ende zu tun, während Lupus beenden, weil wir es nicht zurückgesetzt haben. Also denken Sie daran, es ist immer eine gute Angewohnheit. Sobald Sie mit der Verwendung von upto get ups fertig sind, setzen Sie diese Variable
immer wieder auf eine
20. Linux Teil 3.2 (Getopt Fehler): Behalten Sie Nein, lassen Sie uns auf Get Ups und
Fehler schauen standardmäßig, Fehlermeldung oder gedruckt mit einer ungültigen Option oder Messing-Option Argument ist aufgetreten. Das folgende Skript liefert also kein Argument für Option mine für Option F. Wie Sie hier wieder sehen können, ist
der Code sehr ähnlich zu dem, was wir gesehen haben, bevor Wir zeigen, das erwartet wird, dass, ah, Argument, und es hat es nicht. Also lassen Sie uns Descript hier ausführen und Sie können sehen, dass wir, ah, Fehler beschweren sich über das erforderliche Argument fehlt, wenn das erste Zeichen und up String als Spalte Stille Modus verwendet wird. Also hier haben wir den gleichen Code, außer ich habe mit einem Anruf hier begonnen und die Optionen sind die gleichen. Ich vermisse die Argumente für Option F. Also, wenn ich dieses Skript hier ausführe, beschwert es sich nicht darüber. Wenn die Variable o p. T außer Null irrt, wird
keine Nachricht gedruckt, auch wenn Sie keine stille Abstimmung verwenden. Also mache ich wieder den gleichen Fehler. Ich habe keinen stillen Modus, aber ich habe es gesagt. Äh, Petey, irre auf Null. Also, das ist das Skript hier laufen. Und obwohl ich die Option vermisse und ich nicht Ah bin, im stillen Modus immer noch nicht näher gedruckt, es
im stillen Modus immer noch nicht näher gedruckt,wenn eine ungültige Option isse gefunden hat, würde der Wert eine
Frage haben Mark wird in Namen upped Argumente gesetzt ist unset und eine Diagnose Nachrichten, die von get ups gedruckt werden. Der Codeblock liefert eine ungültige Option Dash X, die wir hier sehen können. Jetzt ist der Code zurück zu dem, was wir hatten, außer in einer case-Anweisung. Wenn mein O p.
T. T. einem Fragemind gleich
ist, bedeutet
das, dass wir auf eine ungültige Option gestoßen sind. Also lassen Sie uns das Skript hier ausführen und jetzt sehen wir die Fehlermeldung, die von get ups und die
Nachricht gedruckt wurde, die ich in der case-Anweisung gedruckt habe. Also und wenn get ops im stillen Modus ist, wird
up Ziel auf die Option Option Zeichen gefunden gesetzt. Eso wird hier ein kurzes Beispiel geben. Schau dir den Code schnell an, also ist es derselbe Code. Dennoch bin
ich im stillen Modus, als ich auf den Fehler gestoßen bin. So werden die Werte ein Fragezeichen von OPD I drucken O p t a r g, und Sie werden sehen, was wir damit meinen. Also sehen Sie, ich habe eine ungültige Option. Eier. Es ist der Wert. Es hat es hart aufbewahrt. Wenn ein erforderliches Argument fehlt und get ops nicht still ist, ein Fragezeichen seinen Platz im Namen und opt argumentiert Beginn und Diagnosemeldungen gedruckt. Also in Schreibtisch-Fall hier, OPD Err ist auf Null gesetzt. Wir befinden uns nicht im stillen Modus. Ich werde auf diese Frage stoßen. Mark und ich werde die gleiche Variable O P t und o P.
D a R g ausdrucken . Also lassen Sie uns die Ergebnisse dieses fehlenden Arguments erkennen. Holen Sie sich auch eine Fehlermeldung anzeigen So sehen Sie, dass es hier keinen Wert Indoor-Bereich gibt. Letzter Punkt über get ops einen Fehler, wenn ein erforderliches Argument fehlt und get ups stumm ist. Eine Kolonise platziert Namen nach oben Argus auf die Option gefunden und sterben Diagnostische Nachricht eingestellt wird nicht gedruckt. Also schauen wir uns das an, sogar richtig genug, ich würde diesen Zeh setzen. Man würde nur die Fehlermeldungen unterdrücken, aber wir sind im stillen Modus, also schaue ich oder nicht das Fragezeichen, aber eine Spalte und ich drucke die gleichen Fehlermeldungen aus wie zuvor, so dass Sie fehlende
Argument erkannt sehen können obsolet. Nicht dies spielen eine Fehlermeldung, und wir wissen, dass die Option Bindestrich F ist, die es auf Argument erfordert. In der nächsten Klassensitzung werden
wir uns die Erstellung von Menüs mit Cilic ansehen, damit Sie die so genannte T u wy Text-Benutzeroberfläche erstellen können.
21. Menus mit SELECT erstellen: Willkommen in dieser Sitzung hier werden wir lernen, wie man Menüs mit Selig eingebaut
Befehl zu machen . Äh, nein. Beschreibung in diesem Abschnitt hier erzeugt interaktive Skripte, so dass es ein Terminal ausgeführt werden muss. Sie müssen in Code exportieren. Uh, die Auswahl erstellt und macht es einfach, das Menü für den Benutzer in einem
Kommandozeilenschnittstellen-Destruktor anzuzeigen . Die Struktur wird Wort in weniger auswählen und dann tun, was Sie tun müssen und dann getan. Also ist es eine Weile. Loop-Liste wird erweitert und eine Liste von Elementen wurde daraus generiert. Die Erweiterung wird auf STD-Fehler gedruckt. Der Dateideskriptor Nummer zwei aufgrund der interaktiven Natur deskriptive muss
exportiert werden . Werfen wir einen Blick auf den Code hier. Das folgende Skript gibt Ihnen also ein Menü aller Verzeichnisse in Ihrem Home-Verzeichnis . Und nachdem Sie eine Auswahl getroffen
haben, werden dies alle Dateien in diesem Verzeichnis. Also, was passiert, ist zuerst, wir machen eine Schleife, dann wählen wir den Namen hier wird, was sie eine Variable war. Das hier ist unsere Liste. Dieser erste Abschnitt wird also alle Verzeichnisse in Ihrem Home-Verzeichnis in diese Liste einfügen. Und dann fügen wir auch die zusätzliche Auszeichnung Quit hinzu. Wir beginnen unsere do Schleife. Jetzt. Wenn die Variable die i r gleich ist, dass beenden wir. Sonst sind wir der Inhalt. Lassen Sie uns also exportieren Disc geschuldet gehen über zu einer Konsole und dies ist eine einfache Auswahl. Das ist also der gesamte Inhalt meines Home-Verzeichnisses. Ältere Verzeichnisse. Also kämpfen wählen Sie drei. Es dauert den Inhalt meines Dokumentverzeichnisses. Und wenn ich 14 hätte, hört es auf. Descript Untermenüs verschachtelte Select Anweisung erstellt Untermenüs. Sehen wir uns das hier an. Also beginnen wir das Gleiche, aber zuerst haben wir hier das oder Home-Verzeichnis geschoben. Okay, Push D ist eine bessere Alternative, um das Verzeichnis im Skript zu ändern. Okay, Bash hält einen Drogenstapel älterer Verzeichnisse. Was wir also tun, ist, dass wir Ihr Home-Verzeichnis auf diesen Stack schieben. Der Grund, warum umleiten einen Schrägstrich Todesfälle national ist, weil jedes Mal, wenn Sie Posey oder Pop
D aufrufen , wird
es den Verzeichnis-Stack auf STDs ausdrucken. Also legen wir unser eigenes Verzeichnis an den Anfang des Stapels und wählen Sie dann Star. Keiner verzeichnisse nur alle Dateien und wir hatten beendet. Dasselbe hier. Wenn wir aufhören finden, verlassen
wir uns. Wenn es sich um ein Verzeichnis handelt, haben wir ein Verzeichnis geschoben. Oben auf diesem Stapel haben wir ausgewählt, um sub d i r Stern und zurück. Okay, wenn das Sub-Haar zurück ist, brechen
wir die Schleife. Also fallen wir hier zurück in unsere Elternschleife. Wenn es sich um eine Datei handelt, drucken
wir einen Inhalt. Seien Sie vorsichtig, die, während Sie für Beispiele und Datei oder Binärdatei auswählen, kann eine lange,
lange Zeit drucken . Wenn es ein Verzeichnis ist, Nun, ist der Inhalt dieses Verzeichnisses? Dieses Jahr sollte nicht passieren. Also, bis wir zurückschlagen, würde
es brechen. Und dann würde es das Verzeichnis auftauchen, das wir hier geschoben haben. Wenn es also kein Verzeichnis ist, wenn es sich um eine Datei handelt, können
wir den Inhalt davon einfach nicht. Und am Ende der es wieder Pop unser eigenes Verzeichnis re an der Spitze geschoben. Also lasst uns exportieren. Und das wäre Ah, mal sehen, das ist letztes Jahr. Wählt die Unternummer aus. Okay, lassen Sie uns das Manuskript „Select sieben“ ausführen. Das ist also mein ganzer Inhalt innerhalb meines Home-Verzeichnisses. Also, wenn ich verkaufen wie 16 Test, dass s H Schicksal Datei, es druckt den Inhalt. Wenn ich mit nichts unter schiebe, druckt es einfach den gleichen Select Luke neu. Also, wenn ich in drei meine Dokumente gehen sollte, habe
ich dieses Verzeichnis eingegeben und es druckt seinen Inhalt aus. Also, wenn ich den Test überprüfe, ist es h da. Es ist eine andere Akte. Und wenn ich in ein anderes Verzeichnis Nummer vier schaue, druckt
es mir den Inhalt aus. Aber ich bin immer noch in der gleichen Schleife. Also ich frische sieben für zurück und ich bin wieder in meinem Home-Verzeichnis, 20 zu beenden und das Skript ist fertig. Also das ist es für die Grundlagen und Anfängerklasse für die Einführung in das Scripting auf Bash in der nächsten Sitzung, ich möchte über ein Projekt sprechen, das ich möchte, dass Sie versuchen.
22. Das Projekt: Lassen Sie uns nun über ein Projekt sprechen, um so ziemlich alles zu üben, was Sie gelernt haben. Was ich schlage vor, dass Sie Bash-Skripting verwenden, um einen sehr einfachen ah
Dateimanager zu erstellen . Es muss nicht viele Funktionen haben. Sie können die Zukunft so wählen, wie Sie wollen. Und wenn wir uns vorwärts in Richtung Mawr Advance Thema bewegen, wir auf dieses Datei-Manager-Skript zu erarbeiten. Also habe ich eine zwei Versionen von diesem Dateimanager enthalten. Sie haben auch nicht beide die gleiche Funktionalität. Eso werde ich die Art und Weise beschreiben, wie es im Ordnungsmodus hier eingegeben wird, also macht es Sinn für Sie. Uh, erste Abschnitt des Codes, den wir hier sehen, heißt Script-Export. Wenn Sie diese Version des Farm-Managers exportieren möchten, gehen
Sie auf diesen Code und Sie drücken die Exportfunktion Control Sie steuern C steuern die Tiefe, so dass dies den gesamten Mantel exportiert. Schauen wir uns hinein. Da ist eigentlich kein Code drin. Die einzige Sache ist, dass diese einen Verweis auf den anderen Codeabschnitt enthält. Der Grund, warum es so gemacht hat. Es ist, weil dies eine ziemlich interaktive Skript-Orig-Modus ist nicht gut. Es ist gut zu bewerten. Aber es ist, wo komplexer, wenn Sie interaktives Scripting tun möchten. Um Fehler zu vermeiden, jeder der nächsten Abschnitt oder jede der Funktionen. Okay, so können Sie sie betrachten jede und sehr,
sehr getrennte eine isolierte Art und Weise. Sie können nicht evaluiert werden. Sie können nicht exportiert werden. Wenn Sie Ihren Export exportieren wollen, dieser hier, der sich auf jeden der anderen Mantel bezieht, werde
ich nicht genau durchgehen, wie es gemacht wird, was Sie hören. Wenn Sie Fragen haben, die Sie darauf ausarbeiten möchten, schließen Sie mich auf meiner Facebook-Gruppe an und posten Sie darüber. OK, das ist eine andere Version von Descript. Es verwendet Mawr, um eso eingebaute Funktion auszuwählen, die wir in einer der vorherigen Versionen gesprochen haben . Es hat auch eine andere Funktion, bei der es erlaubt ist, eine Datei umzubenennen. Also werde ich Sie durch diese Codes hier gehen lassen, Ihnen einige Ideen
geben und ein Skript erstellen, um einen einfachen Dateimanager zu machen, der nicht viele Funktionen
haben muss . Wenn Sie Hilfe benötigen,kommen Sie mir
unsere Klärung in meinem Facebook-Gruppenbeitrag auf. Wenn Sie Hilfe benötigen, Wenn es Fragen zu meinen Funktionen gibt. Ich werde ihn Ihnen gerne beschreiben. Aber ich möchte Ihnen eine Übung Ihr eigenes Urteil für ein wenig lassen und Ihr
Projekt auf meiner Skala posten . Cerda Project Abschnitt Danke,
dass Sie diese Klasse befolgt haben und , hoffen,dass Sie mich in allen zukünftigen Klassen für Lennox begleiten werden.