Preguntes i respostes pràctiques d'entrevista sobre Linux Shell Scripting


Amb la resposta aclaparadora que estem rebent als articles de la sèrie d'entrevistes, el primer d'aquest tipus en qualsevol lloc web de Linux How-to en forma de M'agrada, comentaris en comentaris i adreces de correu electrònic personals ens fan anar d'un article a un altre. article.

Aquí teniu l'enllaç als articles de la sèrie d'entrevistes ja publicats a linux-console.net, on hem tractat molts temes, com ara, FTP, MySQL, Apache, Scripting, ordres de Linux, etc.

Continuant amb la sèrie anterior, arribem amb altres 5 meravelloses preguntes d'entrevista de Linux i la seva resposta. El vostre suport (els lectors de linux-console.net i els visitants freqüents) sempre és necessari per tenir èxit.

Ara creeu un fitxer anomenat userstats.sh i afegiu-hi el codi següent.

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

Col·loqueu el permís d'execució i executeu l'script tal com es mostra a continuació.

# 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

De nou, creeu un fitxer anomenat two-numbers.sh i afegiu-hi el contingut següent.

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

Establiu el permís d'executor al fitxer i executeu l'script tal com es mostra a continuació.

# chmod 755 two-numbers.sh

Condició 1: executant l'script sense introduir dos números com a argument de línia d'ordres, obtindreu la següent sortida.

# ./two-numbers.sh

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

Condició 2: quan s'introdueixen números com a argument de línia d'ordres, obtindreu el resultat tal com es mostra.

$ ./two-numbers.sh 4 5 

Sum of 4 and 5 is 9

Per tant, l'script de l'intèrpret d'ordres anterior compleix la condició suggerida a la pregunta.

  1. 1. Sigui el nombre d'entrada = n
  2. 2. Estableix rev=0, sd=0 (el dígit invers i únic s'estableix a 0)
  3. 3. n % 10, trobarà i donarà un sol dígit esquerre
  4. 4. el número invers es genera com a rev * 10 + sd
  5. 5. Disminueix el número d'entrada (n) en 1.
  6. 6. si n > 0, aneu al pas 3, sinó aneu al setp 7
  7. 7. Imprimeix rev

Ara, de nou, creeu un fitxer anomenat numbers.sh i afegiu-hi el següent codi donat.

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

Concediu un permís d'execució al fitxer i executeu l'script tal com es mostra a continuació.

# chmod 755 numbers.h

Condició 1: quan l'entrada no es proporciona com a argument de línia d'ordres, obtindreu la següent sortida.

./numbers.sh

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

Condició 2: quan es va proporcionar l'entrada com a argument de línia d'ordres.

$ ./numbers.sh 10572 

Reverse number is 27501

L'script anterior va funcionar perfectament i la sortida era just el que necessitàvem.

Per exemple, executeu l'ordre següent per calcular nombres en temps real mitjançant l'ordre bc com es mostra.

$ echo 7.56 + 2.453 | bc

10.013
# pi 100 

3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067

Òbviament! Hem de tenir el paquet 'pi' instal·lat. Només cal que feu un apt o yum per obtenir un paquet necessari per instal·lar pi a la distribució que utilitzeu.

Això és tot per ara. Tornaré a ser aquí amb un altre article interessant molt aviat. Fins aleshores estigueu atents i connectats a linux-console.net. No us oblideu de fer-nos arribar els vostres comentaris valuosos a la secció de comentaris a continuació.