Praktiske interviewspørgsmål og svar på Linux Shell Scripting
Med det overvældende svar, vi får på Interview Series-artiklerne, den første af sin art på ethvert Linux-How-to-websted i form af Likes, Feedback i kommentar såvel som på personlig e-mail-adresse får os til at gå fra en artikel til den næste artikel.
Her er linket til artikler om interviewserier, der allerede er offentliggjort på linux-console.net, hvor vi har dækket mange emner, nemlig FTP, MySQL, Apache, Scripting, Linux-kommandoer osv.
Fortsætter vi med ovenstående serier her kommer vi med yderligere 5 vidunderlige Linux Interview-spørgsmål og deres svar. Din support (The linux-console.net-læsere og hyppige besøgende) er altid nødvendig for at gøre det vellykket.
Opret nu en fil, der hedder 'userstats.sh', og tilføj følgende kode til den.
#!/bin/bash echo "Hello, $LOGNAME" echo "Current date is `date`" echo "User is `who i am`" echo "Current directory `pwd`"
Placer udfør tilladelse og kør scriptet som vist nedenfor.
# chmod 755 userstats.sh # ./userstats.sh
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/Desktop
Opret igen en fil kaldet 'two-numbers.sh' og tilføj følgende indhold til den.
#!/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.
Indstil eksekveringstilladelse til filen, og kør scriptet som vist nedenfor.
# chmod 755 two-numbers.sh
Betingelse 1: Kørsel af scriptet uden at indtaste to tal som kommandolinjeargument, får du følgende output.
# ./two-numbers.sh Usage - ./two-numbers.sh x y Where x and y are two nos for which I will print sum
Betingelse 2: Når tal indtastes som kommandolinjeargument, får du resultatet som vist.
$ ./two-numbers.sh 4 5 Sum of 4 and 5 is 9
Derfor opfylder ovenstående shell-script betingelsen som foreslået i spørgsmålet.
- 1. Lad inputnummeret = n
- 2. Indstil rev = 0, sd = 0 (omvendt og enkelt ciffer er indstillet til 0)
- 3. n% 10, finder og giver enkelt venstre mest cifret
- 4. omvendt nummer genereres som rev * 10 + sd
- 5. Reducer inputnummer (n) med 1.
- 6. hvis n> 0, så gå til trin 3 ellers gå til setp 7
- 7. Udskriv rev
Opret nu igen en fil kaldet 'numbers.sh' og tilføj følgende givne kode den.
#!/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"
Giv en eksekveringstilladelse til filen, og kør scriptet som vist nedenfor.
# chmod 755 numbers.h
Betingelse 1: Når input ikke leveres som kommandolinjeargument, får du følgende output.
./numbers.sh Usage: ./numbers.sh number I will find reverse of given number For eg. ./2.sh 123, I will print 321
Betingelse 2: Når input blev leveret som kommandolinjeargument.
$ ./numbers.sh 10572 Reverse number is 27501
Ovenstående script fungerede perfekt, og output var lige, hvad vi havde brug for.
Kør f.eks. Følgende kommando for at beregne tal i realtid ved hjælp af bc-kommandoen som vist.
$ echo 7.56 + 2.453 | bc 10.013
# pi 100 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067
Naturligvis! Vi skal have pakke 'pi' installeret. Bare gør en apt eller yum for at få en påkrævet pakke til at installere 'pi' på den distribution, du bruger.
Det er alt for nu. Jeg kommer her igen med en anden interessant artikel meget snart. Indtil da hold dig opdateret og tilsluttet linux-console.net. Glem ikke at give os værdifuld feedback i kommentarfeltet nedenfor.