Praktische Fragen und Antworten in Vorstellungsgesprächen zu Linux Shell Scripting
Mit der überwältigenden Resonanz, die wir auf die Artikel der Interview-Serie erhalten, den ersten ihrer Art auf einer Linux-How-to-Website in Form von Likes, Feedbacks in Kommentaren sowie auf persönlichen E-Mail-Adressen, gehen wir von einem Artikel zum nächsten Artikel.
Hier ist der Link zu den bereits auf linux-console.net veröffentlichten Artikeln der Interview-Serie, in denen wir viele Themen behandelt haben, nämlich FTP, MySQL, Apache, Scripting, Linux-Befehle usw.
In Fortsetzung der obigen Serie kommen wir hier mit weiteren 5 wunderbaren Linux-Interviewfragen und deren Antwort. Ihre Unterstützung (The linux-console.net Readers und Frequent Visitors) 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 abzurufen.
Erstellen Sie nun eine Datei mit dem Namen 'userstats.sh' und fügen Sie den folgenden Code hinzu.
#!/bin/bash
echo "Hello, $LOGNAME"
echo "Current date is `date`"
echo "User is `who i am`"
echo "Current directory `pwd`"
Platzieren Sie die Ausführungsberechtigung, und führen Sie das Skript wie unten gezeigt aus.
# chmod 755 userstats.sh
./userstats.shBeispiel-Ausgabe
Hello, avi
Current date is Sat Jun 7 13:05:29 IST 2014
User is avi pts/0 2014-06-07 11:59 (:0)
Current directory /home/avi/Desktop2. Schreiben Sie ein Shell-Skript, das zwei Zahlen addiert, wenn es als Befehlszeilenargument angegeben wird, und wenn die beiden Zahlen nicht eingegeben werden, gibt es eine Fehlermeldung zusammen mit einer einzeiligen Beschreibung der Verwendungsanleitung aus.
Erstellen Sie erneut eine Datei mit dem Namen 'two-numbers.sh' und fügen Sie den folgenden Inhalt hinzu.
#!/bin/bash
The Shebang
if [ $# -ne 2 ]
If two Inputs are not received from Standard Input
then
then execute the below statements
echo "Usage - $0 x y"
# print on standard output, how-to use the script (Usage - ./1.sh x y )
echo " Where x and y are two nos for which I will print sum"
# print on standard output, “Where x and y are two nos for which I will print sum ”
exit 1
# Leave shell in Error Stage and before the task was successfully carried out.
fi
End of the if Statement.
echo "Sum of $1 and $2 is `expr $1 + $2`"
# If the above condition was false and user Entered two numbers as a command Line Argument,
it will show the sum of the entered numbers.Legen Sie die Ausführungsberechtigung für die Datei fest, und führen Sie das Skript wie unten gezeigt aus.
# chmod 755 two-numbers.shBedingung 1: Wenn Sie das Skript ausführen, ohne zwei Zahlen als Befehlszeilenargument einzugeben, erhalten Sie die folgende Ausgabe.
Beispiel-Ausgabe
# ./two-numbers.sh
Usage - ./two-numbers.sh x y
Where x and y are two nos for which I will print sumBedingung 2: Wenn Zahlen als Befehlszeilenargument eingegeben werden, erhalten Sie das angezeigte Ergebnis.
$ ./two-numbers.sh 4 5
Sum of 4 and 5 is 9Daher erfüllt das obige Shell-Skript die in der Frage vorgeschlagene Bedingung.
3. Sie müssen eine gegebene Zahl, z. B. 10572, in umgekehrter Reihenfolge mit einem Shell-Skript ausgeben, so dass die Eingabe nur mit dem Befehlszeilenargument bereitgestellt wird. Wenn die Eingabedaten nicht als Command Line Argument bereitgestellt werden, sollte ein Fehler ausgelöst werden und vorgeschlagen werden, wie das Skript verwendet werden soll. Schreiben Sie das Skript, aber teilen Sie mir vorher den Algorithmus mit, der hier implementiert werden muss.
Algorithmus
- 1. Lassen Sie die Eingabenummer=n
- 2. Setzen Sie rev=0, sd=0 (Reverse und single digitis auf 0)
- 3. n % 10, findet und gibt die einzige linke Ziffer
- 4. Die umgekehrte Nummer wird als Rev * 10 + SD generiert
- 5. Verringern Sie die Eingabenummer (n) um 1.
- 6. Wenn N 0 >, dann gehe zu Schritt 3 sonst gehe zu Setp 7
- 7. Umdrehung drucken
Erstellen Sie nun wieder eine Datei mit dem Namen 'numbers.sh' und fügen Sie den folgenden Code hinzu.
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Usage: $0 number"
echo " I will find reverse of given number"
echo " For eg. $0 0123, I will print 3210"
exit 1
fi
n=$1
rev=0
sd=0
while [ $n -gt 0 ]
do
sd=`expr $n % 10`
rev=`expr $rev \* 10 + $sd`
n=`expr $n / 10`
done
echo "Reverse number is $rev"Erteilen Sie eine Ausführungsberechtigung für die Datei, und führen Sie das Skript wie unten gezeigt aus.
# chmod 755 numbers.hBedingung 1: Wenn die Eingabe nicht als Befehlszeilenargument angegeben wird, erhalten Sie die folgende Ausgabe.
Beispiel-Ausgabe
./numbers.sh
Usage: ./numbers.sh number
I will find reverse of given number
For eg. ./2.sh 123, I will print 321Bedingung 2: Wenn die Eingabe als Befehlszeilenargument bereitgestellt wurde.
$ ./numbers.sh 10572
Reverse number is 27501
Das obige Skript funktionierte perfekt und die Ausgabe war genau das, was wir brauchten.
4. Sie sollten eine reelle Zahlenberechnung direkt vom Terminal aus berechnen und nicht irgendein Shell-Skript. Was werden Sie tun (sagen wir, die realen Zahlen sind 7,56 und 2,453)?
Führen Sie z. B. den folgenden Befehl aus, um Zahlen in Echtzeit mit dem Befehl bc zu berechnen, wie gezeigt.
$ echo 7.56 + 2.453 | bc
10.0135. Sie sollen den Wert von Pi bis zu 100 Dezimalstellen finden, was der einfachste Weg ist, um das Ergebnis zu erzielen.
# pi 100
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067Offensichtlich! Wir müssen das Paket 'pi' installiert haben. Führen Sie einfach ein apt oder yum aus, um ein benötigtes Paket zur Installation von 'pi' auf der von Ihnen verwendeten Distribution zu erhalten.
Das war's fürs Erste. Ich bin bald wieder hier mit einem weiteren interessanten Artikel. Bis dahin bleiben Sie dran und mit linux-console.net verbunden. Vergessen Sie nicht, uns im Kommentarbereich unten wertvolles Feedback zu geben.
