Recherche de site Web

Questions et réponses d'entretien pratique sur les scripts Linux Shell


Avec la réponse massive que nous recevons aux articles de la série d'interviews, la première du genre sur n'importe quel site Web Linux How-to sous forme de J'aime, de commentaires ainsi que d'adresses e-mail personnelles nous font passer d'un article à l'autre. article.

Voici le lien vers les articles de la série d'interviews déjà publiés sur linux-console.net, où nous avons abordé de nombreux sujets, à savoir FTP, MySQL, Apache, les scripts, les commandes Linux, etc.

Poursuivant la série ci-dessus, nous arrivons ici avec 5 autres merveilleuses questions d'entretien sur Linux et leur réponse. Votre soutien (les lecteurs et visiteurs fréquents de linux-console.net) est toujours nécessaire pour réussir.

1. Écrivez un script shell pour obtenir la date, l'heure, le nom d'utilisateur et le répertoire de travail actuel.

Créez maintenant un fichier appelé « userstats.sh » et ajoutez-y le code suivant.

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

Placez l'autorisation d'exécution et exécutez le script comme indiqué ci-dessous.

chmod 755 userstats.sh 
./userstats.sh
Exemple de sortie
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. Écrivez un script Shell qui ajoute deux nombres s'ils sont fournis comme argument de ligne de commande et si les deux nombres ne sont pas saisis, il génère un message d'erreur ainsi qu'une ligne de description d'utilisation.

Créez à nouveau un fichier appelé « two-numbers.sh » et ajoutez-y le contenu suivant.

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

Définissez l'autorisation de l'exécuteur sur le fichier et exécutez le script comme indiqué ci-dessous.

chmod 755 two-numbers.sh

Condition 1 : en exécutant le script sans saisir deux nombres comme argument de ligne de commande, vous obtiendrez le résultat suivant.

Exemple de sortie
./two-numbers.sh

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

Condition 2 : lorsque des nombres sont saisis comme argument de ligne de commande, vous obtiendrez le résultat comme indiqué.

./two-numbers.sh 4 5 

Sum of 4 and 5 is 9

Par conséquent, le script shell ci-dessus remplit la condition suggérée dans la question.

3. Vous devez imprimer un numéro donné, par exemple 10572, dans l'ordre inverse à l'aide d'un script Shell de telle sorte que l'entrée soit fournie à l'aide de l'argument de ligne de commande uniquement. Si les données d'entrée ne sont pas fournies en tant qu'argument de ligne de commande, elles devraient générer une erreur et suggérer comment utiliser le script. Écrivez le script mais avant cela, dites-moi l'algorithme qui doit être implémenté ici.

Algorithme

  1. 1. Laissez le numéro d'entrée=n
  2. 2. Réglez rev=0, sd=0 (Reverse et chiffre unique réglés sur 0)
  3. 3. n % 10, trouvera et donnera le chiffre le plus à gauche
  4. 4. Le numéro inversé est généré sous la forme rev * 10 + sd
  5. 5. Diminuez le numéro d'entrée (n) de 1.
  6. 6. si n > 0, alors passez à l'étape 3, sinon passez à la configuration 7
  7. 7. Imprimer la version

Maintenant encore, créez un fichier appelé « numbers.sh » et ajoutez-y le code suivant.

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

Accordez une autorisation d'exécution sur le fichier et exécutez le script comme indiqué ci-dessous.

chmod 755 numbers.h

Condition 1 : lorsque l'entrée n'est pas fournie comme argument de ligne de commande, vous obtiendrez le résultat suivant.

Exemple de sortie
./numbers.sh

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

Condition 2 : lorsque l'entrée a été fournie en tant qu'argument de ligne de commande.

./numbers.sh 10572 

Reverse number is 27501

Le script ci-dessus a parfaitement fonctionné et le résultat correspondait exactement à ce dont nous avions besoin.

4. Vous êtes censé calculer un calcul de nombres réels directement à partir du terminal et non à partir de n'importe quel script shell. Que ferez-vous (disons que les nombres réels sont 7,56 et 2,453) ?

Par exemple, exécutez la commande suivante pour calculer des nombres en temps réel à l'aide de la commande bc comme indiqué.

echo 7.56 + 2.453 | bc

10.013
5. Vous êtes censé trouver la valeur de pi jusqu'à 100 décimales, ce qui est le moyen le plus simple d'obtenir le résultat.
pi 100 

3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067

Évidemment! Nous devons avoir le package « pi » installé. Faites simplement unapt ouyum pour obtenir un package requis pour installer 'pi' sur la distribution que vous utilisez.

C'est tout pour le moment. Je reviendrai très bientôt avec un autre article intéressant. D’ici là, restez à l’écoute et connecté à linux-console.net. N'oubliez pas de nous faire part de vos précieux commentaires dans la section commentaires ci-dessous.