Praktiske intervjuspørsmål og svar om Linux Shell-skripting
Med den overveldende responsen vi får på Intervjuserie-artiklene, den første i sitt slag på et Linux How-to-nettsted i form av Likes, tilbakemeldinger i kommentarer så vel som på personlig e-postadresse får oss til å gå fra en artikkel til den neste artikkel.
Her er lenken til Intervjuserien-artiklene som allerede er publisert på linux-console.net, hvor vi har dekket mange emner, nemlig FTP, MySQL, Apache, Scripting, Linux-kommandoer, etc.
Fortsetter til serien ovenfor her kommer vi med ytterligere 5 fantastiske Linux-intervjuspørsmål og deres svar. Din (linux-console.net-leserne og hyppige besøkende) støtte er alltid nødvendig for å gjøre det vellykket.
Lag nå en fil kalt 'userstats.sh' og legg til 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`"
Plasser utførelsestillatelse og kjør skriptet 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
Lag igjen en fil kalt 'two-numbers.sh' og legg til følgende innhold 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.
Sett kjøretillatelse på filen og kjør skriptet som vist nedenfor.
# chmod 755 two-numbers.sh
Betingelse 1: Hvis du kjører skriptet uten å angi to tall som kommandolinjeargument, vil du få følgende utdata.
# ./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 tall legges inn som kommandolinjeargument vil du få resultatet som vist.
$ ./two-numbers.sh 4 5 Sum of 4 and 5 is 9
Derfor oppfyller skallskriptet ovenfor betingelsen som foreslått i spørsmålet.
- 1. La inndatanummeret = n
- 2. Sett rev=0, sd=0 (Revers og enkeltsiffer satt til 0)
- 3. n % 10, vil finne og gi enkelt siffer lengst til venstre
- 4. omvendt tall genereres som rev * 10 + sd
- 5. Reduser inndatanummer (n) med 1.
- 6. hvis n > 0, så gå til trinn 3 ellers gå til settp 7
- 7. Skriv ut rev.
Nå igjen, lag en fil kalt 'numbers.sh' og legg til følgende gitte kode.
#!/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"
Gi en utføringstillatelse på filen og kjør skriptet som vist nedenfor.
# chmod 755 numbers.h
Betingelse 1: Når Input ikke er gitt som kommandolinjeargument, vil du få følgende utdata.
./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 ble gitt som kommandolinjeargument.
$ ./numbers.sh 10572 Reverse number is 27501
Skriptet ovenfor fungerte perfekt, og resultatet var akkurat det vi trengte.
Kjør for eksempel følgende kommando for å beregne tall i sanntid ved å bruke bc-kommandoen som vist.
$ echo 7.56 + 2.453 | bc 10.013
# pi 100 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067
Åpenbart! Vi må ha pakken 'pi' installert. Bare gjør en apt eller yum for å få en nødvendig pakke for å installere 'pi' på distribusjonen du bruker.
Det er alt for nå. Jeg kommer snart igjen med en annen interessant artikkel. Inntil da, følg med og koble til linux-console.net. Ikke glem å gi oss verdifull tilbakemelding i kommentarfeltet nedenfor.