Praktiski intervijas jautājumi un atbildes uz Linux Shell skriptiem
Ar milzīgu atsaucību mēs saņemam Interviju sērijas rakstus, pirmos šāda veida rakstus jebkurā Linux vietnes vietnē Patīk, Atsauksmes komentāros, kā arī personīgajā e-pasta adresē, liekot mums pāriet no viena raksta uz nākamo rakstu.
Šeit ir saite uz interviju sērijas rakstiem, kas jau ir publicēti vietnē linux-console.net, kur mēs esam apskatījuši daudzas tēmas, piemēram, FTP, MySQL, Apache, Scripting, Linux komandas utt.
Turpinot iepriekš minēto sēriju, mēs nākam ar vēl 5 brīnišķīgiem Linux intervijas jautājumiem un viņu atbildēm. Lai tas būtu veiksmīgs, vienmēr ir nepieciešams jūsu (The linux-console.net lasītāju un bieži apmeklētāju) atbalsts.
Tagad izveidojiet failu ar nosaukumu “userstats.sh” un pievienojiet tam šādu kodu.
#!/bin/bash echo "Hello, $LOGNAME" echo "Current date is `date`" echo "User is `who i am`" echo "Current directory `pwd`"
Novietojiet izpildes atļauju un palaidiet skriptu, kā parādīts zemāk.
# 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
Atkal izveidojiet failu ar nosaukumu “two-numbers.sh” un pievienojiet tam šādu saturu.
#!/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.
Iestatiet faila izpildītāja atļauju un palaidiet skriptu, kā parādīts zemāk.
# chmod 755 two-numbers.sh
1. nosacījums: palaižot skriptu, neievadot divus skaitļus kā komandrindas argumentu, jūs iegūsiet šādu izvadi.
# ./two-numbers.sh Usage - ./two-numbers.sh x y Where x and y are two nos for which I will print sum
2. nosacījums: Kad cipari tiek ievadīti kā komandrindas arguments, jūs iegūsiet rezultātu, kā parādīts.
$ ./two-numbers.sh 4 5 Sum of 4 and 5 is 9
Tādējādi iepriekšējais čaulas skripts atbilst nosacījumam, kas ieteikts jautājumā.
- 1. Ļaujiet ievades skaitlim = n
- 2. Iestatiet rev = 0, sd = 0 (reversais un vienciparu skaitlis iestatīts uz 0)
- 3. n% 10, atradīs un piešķirs vienu kreiso ciparu
- 4. reversais skaitlis tiek ģenerēts kā rev * 10 + sd
- 5. Samaziniet ievades numuru (n) par 1.
- 6. ja n> 0, tad pārejiet uz 3. soli, pārejiet uz setp 7
- 7. Drukāt rev.
Tagad atkal izveidojiet failu ar nosaukumu “numbers.sh” un pievienojiet to tālāk norādītajam kodam.
#!/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"
Piešķiriet faila izpildes atļauju un palaidiet skriptu, kā parādīts zemāk.
# chmod 755 numbers.h
1. nosacījums: ja ievade nav norādīta kā komandrindas arguments, tiks parādīta šāda izeja.
./numbers.sh Usage: ./numbers.sh number I will find reverse of given number For eg. ./2.sh 123, I will print 321
2. nosacījums: kad ievade tika norādīta kā komandrindas arguments.
$ ./numbers.sh 10572 Reverse number is 27501
Iepriekš minētais skripts darbojās perfekti, un rezultāts bija tieši tas, kas mums vajadzīgs.
Piemēram, palaidiet šo komandu, lai reāllaikā aprēķinātu skaitļus, izmantojot komandu bc, kā parādīts.
$ echo 7.56 + 2.453 | bc 10.013
# pi 100 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067
Skaidrs! Mums jābūt instalētai pakotnei “pi”. Vienkārši izdariet apt vai yum, lai iegūtu nepieciešamo pakotni, lai instalētu “pi” jūsu izmantotajā izplatīšanā.
Tas pagaidām ir viss. Ļoti drīz būšu šeit atkal ar vēl vienu interesantu rakstu. Līdz tam sekojiet līdzi jaunumiem un sazinieties ar linux-console.net. Neaizmirstiet sniegt mums vērtīgas atsauksmes komentāru sadaļā zemāk.