ലിനക്സ് ഷെൽ സ്ക്രിപ്റ്റിംഗിനെക്കുറിച്ചുള്ള പ്രായോഗിക അഭിമുഖ ചോദ്യങ്ങളും ഉത്തരങ്ങളും


ഇന്റർവ്യൂ സീരീസ് ലേഖനങ്ങളിൽ ഞങ്ങൾക്ക് ലഭിക്കുന്ന മികച്ച പ്രതികരണത്തോടെ, ലൈക്കുകൾ, അഭിപ്രായങ്ങളിലെ ഫീഡ്uബാക്ക്, വ്യക്തിഗത ഇമെയിൽ വിലാസം എന്നിവയുടെ രൂപത്തിൽ ഏതെങ്കിലും ലിനക്uസ് ഹൗ-ടു വെബ്uസൈറ്റിലെ ഇത്തരത്തിലുള്ള ആദ്യത്തേത് ഒരു ലേഖനത്തിൽ നിന്ന് അടുത്തതിലേക്ക് ഞങ്ങളെ കൊണ്ടുപോകുന്നു. ലേഖനം.

എഫ്uടിപി, മൈഎസ്uക്യുഎൽ, അപ്പാച്ചെ, സ്uക്രിപ്റ്റിംഗ്, ലിനക്uസ് കമാൻഡുകൾ തുടങ്ങിയ നിരവധി വിഷയങ്ങൾ ഞങ്ങൾ ഉൾപ്പെടുത്തിയിട്ടുള്ള, linux-console.net-ൽ ഇതിനകം പ്രസിദ്ധീകരിച്ച അഭിമുഖ സീരീസ് ലേഖനങ്ങളിലേക്കുള്ള ലിങ്ക് ഇതാ.

മുകളിലെ സീരീസിലേക്ക് ഇവിടെ തുടരുന്നു, ഞങ്ങൾ മറ്റൊരു 5 അത്ഭുതകരമായ Linux അഭിമുഖ ചോദ്യങ്ങളും അവയുടെ ഉത്തരങ്ങളുമായി വരുന്നു. ഇത് വിജയകരമാക്കാൻ നിങ്ങളുടെ (The linux-console.net വായനക്കാരും പതിവ് സന്ദർശകരും) പിന്തുണ എപ്പോഴും ആവശ്യമാണ്.

ഇപ്പോൾ ‘userstats.sh’ എന്ന പേരിൽ ഒരു ഫയൽ സൃഷ്ടിച്ച് അതിൽ ഇനിപ്പറയുന്ന കോഡ് ചേർക്കുക.

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

എക്സിക്യൂട്ട് പെർമിഷൻ സ്ഥാപിച്ച് താഴെ കാണിച്ചിരിക്കുന്നതുപോലെ സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുക.

# 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

വീണ്ടും 'two-numbers.sh' എന്ന പേരിൽ ഒരു ഫയൽ സൃഷ്uടിക്കുകയും അതിൽ ഇനിപ്പറയുന്ന ഉള്ളടക്കം ചേർക്കുകയും ചെയ്യുക.

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

ഫയലിൽ എക്സിക്യൂട്ടർ അനുമതി സജ്ജീകരിച്ച് താഴെ കാണിച്ചിരിക്കുന്നതുപോലെ സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുക.

# chmod 755 two-numbers.sh

വ്യവസ്ഥ 1: കമാൻഡ് ലൈൻ ആർഗ്യുമെന്റായി രണ്ട് അക്കങ്ങൾ നൽകാതെ സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുമ്പോൾ, നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന ഔട്ട്പുട്ട് ലഭിക്കും.

# ./two-numbers.sh

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

വ്യവസ്ഥ 2: കമാൻഡ് ലൈൻ ആർഗ്യുമെന്റായി നമ്പറുകൾ നൽകുമ്പോൾ, കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾക്ക് ഫലം ലഭിക്കും.

$ ./two-numbers.sh 4 5 

Sum of 4 and 5 is 9

അതിനാൽ മുകളിലെ ഷെൽ സ്ക്രിപ്റ്റ് ചോദ്യത്തിൽ നിർദ്ദേശിച്ചിരിക്കുന്ന വ്യവസ്ഥ നിറവേറ്റുന്നു.

  1. 1. ഇൻപുട്ട് നമ്പർ = n
  2. എന്ന് അനുവദിക്കുക
  3. 2. rev=0, sd=0 (വിപരീതവും സിംഗിൾ ഡിജിറ്റും 0 ആയി സജ്ജമാക്കുക)
  4. 3. n % 10, ഇടതുവശത്തെ ഏറ്റവും കൂടുതൽ അക്കം
  5. കണ്ടെത്തി നൽകും
  6. 4. വിപരീത നമ്പർ rev * 10 + sd
  7. ആയി ജനറേറ്റ് ചെയ്യുന്നു
  8. 5. ഇൻപുട്ട് നമ്പർ (n) 1 കൊണ്ട് കുറയ്ക്കുക.
  9. 6. n > 0 ആണെങ്കിൽ, ഘട്ടം 3 ലേക്ക് പോകുക, മറ്റുള്ളവ സെറ്റ് 7
  10. എന്നതിലേക്ക് പോകുക
  11. 7. rev
  12. അച്ചടിക്കുക

ഇപ്പോൾ വീണ്ടും, 'numbers.sh' എന്ന പേരിൽ ഒരു ഫയൽ സൃഷ്ടിച്ച് താഴെ നൽകിയിരിക്കുന്ന കോഡ് ചേർക്കുക.

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

ഫയലിൽ ഒരു എക്സിക്യൂട്ട് പെർമിഷൻ നൽകി താഴെ കാണിച്ചിരിക്കുന്നതുപോലെ സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുക.

# chmod 755 numbers.h

വ്യവസ്ഥ 1: ഇൻപുട്ട് കമാൻഡ് ലൈൻ ആർഗ്യുമെന്റായി നൽകാത്തപ്പോൾ, നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന ഔട്ട്പുട്ട് ലഭിക്കും.

./numbers.sh

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

വ്യവസ്ഥ 2: കമാൻഡ് ലൈൻ ആർഗ്യുമെന്റായി ഇൻപുട്ട് നൽകിയപ്പോൾ.

$ ./numbers.sh 10572 

Reverse number is 27501

മുകളിലെ സ്uക്രിപ്റ്റ് നന്നായി പ്രവർത്തിച്ചു, ഔട്ട്uപുട്ട് ഞങ്ങൾക്ക് ആവശ്യമുള്ളത് മാത്രമായിരുന്നു.

ഉദാഹരണത്തിന്, കാണിച്ചിരിക്കുന്നതുപോലെ bc കമാൻഡ് ഉപയോഗിച്ച് തത്സമയം നമ്പറുകൾ കണക്കാക്കാൻ ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.

$ echo 7.56 + 2.453 | bc

10.013
# pi 100 

3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067

സ്പഷ്ടമായി! നമ്മൾ പാക്കേജ് 'പൈ' ഇൻസ്റ്റാൾ ചെയ്തിരിക്കണം. നിങ്ങൾ ഉപയോഗിക്കുന്ന വിതരണത്തിൽ 'pi' ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന് ആവശ്യമായ ഒരു പാക്കേജ് ലഭിക്കാൻ ഒരു apt അല്ലെങ്കിൽ yum ചെയ്യുക.

ഇപ്പോഴത്തേക്ക് ഇത്രമാത്രം. വളരെ പെട്ടെന്ന് തന്നെ രസകരമായ മറ്റൊരു ലേഖനവുമായി ഞാൻ ഇവിടെ എത്തും. അതുവരെ തുടരുകയും linux-console.net-ലേക്ക് കണക്uറ്റ് ചെയ്യുകയും ചെയ്യുക. ചുവടെയുള്ള അഭിപ്രായ വിഭാഗത്തിൽ നിങ്ങളുടെ വിലയേറിയ ഫീഡ്uബാക്ക് ഞങ്ങൾക്ക് നൽകാൻ മറക്കരുത്.