Praktische Interviewfragen und Antworten zum Linux -Shell -Skripting
- 2892
- 256
- Hr. Moritz Bozsik
Mit der überwältigenden Antwort erhalten wir auf die Artikel der Interviewserie, die erste ihrer Art auf jeder Linux-How-to-Website in Form von Likes, Feedbacks in Kommentar und der persönlichen E-Mail-Adresse lassen uns von einem Artikel zum nächsten gehen Artikel.
Hier ist der Link zur Interview -Serie -Artikel, die bereits auf Tecmint veröffentlicht wurden.com, wo wir viele Themen behandelt haben, nämlich., FTP, MySQL, Apache, Skript, Linux -Befehle usw.
Praktische Interviewfrage zum Shell -SkriptenFortsetzung der obigen Serie hier kommen wir mit weiteren 5 wundervollen Fragen des wundervollen Linux -Interviews und ihrer Antwort. Ihr (der Tecmint.COM -Leser und häufige Besucher) Support wird immer benötigt, um es erfolgreich zu machen.
1. Schreiben Sie ein Shell -Skript, um das aktuelle Datum, die Uhrzeit, den Benutzernamen und das aktuelle Arbeitsverzeichnis zu erhalten.
Antworten : Die Befehle logname, Datum, wer ich und PWD bin. Implementieren Sie diese Befehle nur im Skript und machen Sie es ein bisschen interaktiv.Erstellen Sie nun eine Datei namens 'UserStats.Sch'und fügen Sie den folgenden Code hinzu.
#!/bin/bash echo "Hallo, $ logName" echo "Das aktuelle Datum ist 'Datum'" echo "Benutzer ist 'wer ich bin'" echo "aktuelles Verzeichnis 'PWD'" "
Platzieren Sie die Erlaubnis aus und führen Sie das Skript wie unten gezeigt aus.
# Chmod 755 UserStats.Sch # ./UserStats.Sch
Probenausgabe
Hallo, das aktuelle Datum von AVI ist Sa 7. Juni 13:05:29 IST 2014 Benutzer ist AVI PTS/0 2014-06-07 11:59 (: 0) Aktuelles Verzeichnis/Home/AVI/Desktop
2. Schreiben Sie ein Shell-Skript, das zwei Zahlen hinzufügt, wenn sie als Befehlszeilenargument angezeigt werden und wenn die beiden Zahlen nicht eingegeben werden.
Antworten : Hier ist das einfache Shell-Skript zusammen mit Beschreibung, die zwei Nummer hinzufügt, wenn es als Befehlszeilenargument angegeben ist, wenn nicht, wenn nicht es einen Fehler mit einer einzigen Zeile über die Verwendung des Skripts erfüllt.Erstellen Sie erneut eine Datei namens 'Zweizahlen.Sch'und fügen Sie den folgenden Inhalt hinzu.
#!/bin/bash # the Shebang Wenn [$ # -ne 2] # Wenn zwei Eingänge nicht von Standardeingaben empfangen werden, dann führen Sie die folgenden Anweisungen Echo "Nutzung -$ 0 x y" # aus, drucken Sie die Standardausgabe, wie Sie die verwenden, um die zu verwenden Skript (Verwendung - ./1.sh x y) echo "wobei x und y zwei NOs sind, für die ich Summe drucken" # drucken auf Standardausgabe, "wobei x und y zwei NOs sind, für die ich Summe drucken werde. Die Aufgabe wurde erfolgreich durchgeführt. FI # Ende der IF -Aussage. Echo "Summe von $ 1 und $ 2 beträgt 'extra $ 1 + $ 2'" # Wenn die obige Bedingung falsch war und der Benutzer zwei Zahlen als Befehlszeilenargument eingegeben hat, wird die Summe der eingegebenen Zahlen angezeigt.
Legen Sie die Berechtigung der Executer in der Datei fest und führen Sie das Skript wie unten gezeigt aus.
# CHMOD 755 Zweizahlen.Sch
Bedingung 1: Ausführen des Skripts, ohne zwei Zahlen als Befehlszeilenargument einzugeben, erhalten Sie die folgende Ausgabe.
Probenausgabe
# ./Zweizahlen.sh Verwendung - ./Zweizahlen.sh x y, wo x und y zwei NOs sind, für die ich die Summe drucken werde
Bedingung 2: Wenn Zahlen als Befehlszeilenargument eingegeben werden, erhalten Sie das Ergebnis wie gezeigt.
$ ./Zweizahlen.Sh 4 5 Summe von 4 und 5 ist 9
Daher erfüllt das obige Shell -Skript die Bedingung, wie in der Frage vorgeschlagen.
3. Sie müssen eine bestimmte Nummer ausdrucken, heißt. Wenn die Eingabedaten nicht als Befehlszeilenargument bereitgestellt werden, sollte sie werfen und fehlerhaft sind und vorschlagen, wie das Skript verwendet wird. Schreiben Sie das Skript, aber vorher sagen Sie mir den Algorithmus, der hier implementiert werden muss.
Algorithmus
- 1. Lassen Sie die Eingangsnummer = n
- 2. Setzen Sie rev = 0, sd = 0 (umgekehrte und einzelne Digitis auf 0 gesetzt)
- 3. n % 10, finden und geben Single links die meiste Ziffer
- 4. Die Rückwärtszahl wird als Rev * 10 + SD generiert
- 5. Verringern Sie die Eingangszahl (n) um 1.
- 6. Wenn n> 0, dann GOTO STEP 3 ENDER GOTO SETP 7
- 7. Print Rev
Erstellen Sie nun eine Datei namens 'Zahlen.Sch'und fügen Sie den folgenden Code hinzu.
#!/bin/bash if [$# -ne 1] dann echo "nutzung: $ 0 number" echo "Ich werde umgekehrt der angegebenen Nummer" echo "für z. $ 0 0123, ich drucke 3210 "Beenden 1 fi n = $ 1 rev = 0 "n =" expr $ n / 10 "Done Echo" Reverse -Nummer ist $ rev "
Gewähren.
# Chmod 755 Zahlen.H
Bedingung 1: Wenn die Eingabe nicht als Befehlszeilenargument bereitgestellt wird, erhalten Sie die folgende Ausgabe.
Probenausgabe
./Zahlen.SH Nutzung: ./Zahlen.SH -Nummer Ich werde umgekehrt der angegebenen Nummer für z. B.… /2 finden.Sh 123, ich werde 321 drucken
Bedingung 2: Wenn die Eingabe als Befehlszeilenargument bereitgestellt wurde.
$ ./Zahlen.SH 10572 Rückwärtszahl ist 27501
Das obige Skript funktionierte perfekt und die Ausgabe brauchte genau das, was wir brauchten.
4. Sie sollen eine reelle Zahlenberechnung direkt vom Terminal und keiner Shell -Skript berechnen. Was wirst du tun (sagen wir, die realen Zahlen sind 7.56 und 2.453)?
Antworten : Wir müssen den BC -Befehl auf eine besondere Weise verwenden, wie unten beschrieben. Die Ausgabe von Echo 7.56 + 2.453 sollte zu BC pipeliert werden.Führen Sie beispielsweise den folgenden Befehl aus, um die Zahlen in Echtzeit zu berechnen BC Befehl wie gezeigt.
$ echo 7.56 + 2.453 | BC 10.013
5. Sie sollen den Wert von PI bis zu 100 Stellen der Dezimalstelle finden, was ist der einfachste Weg, um das Ergebnis zu erzielen.
Antworten : Der einfachste Weg, um den Wert von PI zu finden, korrigieren Sie bis zu 100 Dezimalstellen. Wir müssen nur das folgende Befehl ausgeben.# pi 100 3.141592653589793238462643383279502884197169393751058209749459230781640628620898628034825342117067
Offensichtlich! Wir müssen ein Paket haben 'Pi' Eingerichtet. Mach einfach a geeignet oder Yum Um ein erforderliches Paket zu installieren 'Pi'Auf die Verteilung, die Sie verwenden.
Das ist alles fürs Erste. Ich werde sehr bald wieder mit einem anderen interessanten Artikel hier sein. Bis dahin bleiben Sie dran und mit Tecmint verbunden.com. Vergessen Sie nicht, uns im Kommentarbereich unten ein wertvolles Feedback zu geben.
- « Installieren von LEMP (Linux, Nginx, MySQL/Mariadb, PHP/PHP-FPM und PHPMYADMIN) in Gentoo Linux
- Ein ... kreieren .Deb -Paket -Repository “bei SourceForge.Netto mit RepeRe -Tool in Ubuntu »