Pitanja i odgovori za praktičan intervju o Linux shell skriptovima


Sa ogromnim odazivom koji dobijamo na članke iz serije intervjua, prvi takve vrste na bilo kojoj web stranici s uputama za Linux u obliku lajkova, povratnih informacija u komentarima kao i na ličnim adresama e-pošte čine nas da idemo od jednog članka do drugog. članak.

Ovdje je link na članke iz Interview Series koji su već objavljeni na linux-console.net, gdje smo pokrili mnoge teme, a to su FTP, MySQL, Apache, Skriptiranje, Linux komande, itd.

Nastavljajući na gornju seriju, ovdje dolazimo sa još 5 prekrasnih pitanja za Linux intervju i njihovim odgovorom. Vaša podrška (Čitaoci linux-console.net i česti posetioci) je uvek potrebna da bi on bio uspešan.

1. Napišite shell skriptu da dobijete trenutni datum, vrijeme, korisničko ime i trenutni radni direktorij.

Sada kreirajte datoteku pod nazivom „userstats.sh“ i dodajte joj sljedeći kod.

#!/bin/bash 
echo "Hello, $LOGNAME" 
echo "Current date is `date`" 
echo "User is `who i am`" 
echo "Current directory `pwd`"

Dajte dozvolu za izvršavanje i pokrenite skriptu kao što je prikazano ispod.

chmod 755 userstats.sh 
./userstats.sh
Sample Output
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
2. Napišite shell skriptu koja dodaje dva broja ako je navedena kao argument naredbenog reda i ako dva broja nisu unesena, daje poruku o grešci zajedno sa opisom u jednom redu kako koristiti.

Ponovo kreirajte datoteku pod nazivom „two-numbers.sh“ i dodajte joj sljedeći sadržaj.

#!/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.

Postavite dozvolu izvršitelja na datoteku i pokrenite skriptu kao što je prikazano ispod.

chmod 755 two-numbers.sh

Uslov 1: Pokretanjem skripte bez unošenja dva broja kao argumenta komandne linije, dobićete sledeći izlaz.

Sample Output
./two-numbers.sh

Usage - ./two-numbers.sh   x    y 
        Where x and y are two nos for which I will print sum

Uslov 2: Kada se brojevi unesu kao argument komandne linije, dobićete rezultat kao što je prikazano.

./two-numbers.sh 4 5 

Sum of 4 and 5 is 9

Stoga gornja shell skripta ispunjava uslov kao što je predloženo u pitanju.

3. Potrebno je da odštampate dati broj recimo 10572, obrnutim redosledom koristeći Shell skriptu tako da se unos obezbedi koristeći samo argument komandne linije. Ako ulazni podaci nisu dati kao argument komandne linije, trebalo bi da izbaci i grešku i treba da predloži kako da se koristi skript. Napišite skriptu ali prije toga mi recite algoritam koji ovdje treba implementirati.

Algoritam

  1. 1. Neka je ulazni broj=n
  2. 2. Postavite rev=0, sd=0 (Revers i jednocifreni su postavljeni na 0)
  3. 3. n % 10, će pronaći i dati jednu krajnju lijevu znamenku
  4. 4. obrnuti broj se generira kao rev * 10 + sd
  5. 5. Smanjite broj unosa (n) za 1.
  6. 6. ako je n > 0, onda idite na korak 3, inače idite na setp 7
  7. 7. Ispis rev

Sada ponovo kreirajte datoteku pod nazivom „numbers.sh“ i dodajte joj sljedeći kod.

#!/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"

Dajte dozvolu za izvršavanje datoteke i pokrenite skriptu kao što je prikazano ispod.

chmod 755 numbers.h

Uslov 1: Kada Input nije naveden kao argument komandne linije, dobićete sledeći izlaz.

Sample Output
./numbers.sh

Usage: ./numbers.sh  number 
       I will find reverse of given number 
       For eg. ./2.sh 123, I will print 321

Uslov 2: Kada je unos dat kao argument komandne linije.

./numbers.sh 10572 

Reverse number is 27501

Gornja skripta je radila savršeno i rezultat je bio upravo ono što nam je trebalo.

4. Trebali biste izračunati izračun stvarnog broja direktno iz terminala, a ne bilo koje shell skripte. Šta ćete učiniti (recite da su pravi brojevi 7,56 i 2,453)?

Na primjer, pokrenite sljedeću naredbu da izračunate brojeve u realnom vremenu koristeći naredbu bc kao što je prikazano.

echo 7.56 + 2.453 | bc

10.013
5. Trebali biste pronaći vrijednost pi do 100 decimalnih mjesta, što je najlakši način da dobijete rezultat.
pi 100 

3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067

Očigledno! Moramo imati instaliran paket „pi“. Samo uradite apt ili yum da dobijete potreban paket za instalaciju ‘pi‘ na distribuciju koju koristite.

To je sve za sada. Uskoro ću opet biti ovdje sa još jednim zanimljivim člankom. Do tada ostanite sa nama i povezani na linux-console.net. Ne zaboravite nam dati vrijedne povratne informacije u odjeljku za komentare ispod.