Búsqueda de sitios web

Preguntas y respuestas prácticas de la entrevista sobre secuencias de comandos de Shell de Linux


Con la abrumadora respuesta que estamos obteniendo en los artículos de la serie de entrevistas, los primeros de su tipo en cualquier sitio web de instrucciones de Linux en forma de Me gusta, comentarios en comentarios y direcciones de correo electrónico personales, nos hacen pasar de un artículo al siguiente. artículo.

Aquí está el enlace a los artículos de la serie de entrevistas ya publicados en linux-console.net, donde hemos cubierto muchos temas, a saber, FTP, MySQL, Apache, secuencias de comandos, comandos de Linux, etc.

Continuando con la serie anterior, aquí presentamos otras 5 maravillosas preguntas de la entrevista sobre Linux y su respuesta. Su apoyo (los lectores y visitantes frecuentes de linux-console.net) siempre es necesario para que sea un éxito.

1. Escriba un script de shell para obtener la fecha, hora, nombre de usuario y directorio de trabajo actuales.

Ahora cree un archivo llamado "userstats.sh" y agréguele el siguiente código.

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

Coloque el permiso de ejecución y ejecute el script como se muestra a continuación.

chmod 755 userstats.sh 
./userstats.sh
Salida de muestra
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. Escriba un script de Shell que agregue dos números si se proporciona como argumento de línea de comando y, si no se ingresan los dos números, generará un mensaje de error junto con una descripción de una línea de cómo utilizarlo.

Vuelva a crear un archivo llamado "two-numbers.sh" y agréguele el siguiente contenido.

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

Establezca el permiso de ejecución en el archivo y ejecute el script como se muestra a continuación.

chmod 755 two-numbers.sh

Condición 1: al ejecutar el script sin ingresar dos números como argumento de la línea de comando, obtendrá el siguiente resultado.

Salida de muestra
./two-numbers.sh

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

Condición 2: Cuando se ingresan números como argumento de línea de comando, obtendrá el resultado como se muestra.

./two-numbers.sh 4 5 

Sum of 4 and 5 is 9

Por lo tanto, el script de shell anterior cumple la condición sugerida en la pregunta.

3. Debe imprimir un número determinado, por ejemplo 10572, en orden inverso utilizando un script de Shell, de modo que la entrada se proporcione utilizando únicamente el argumento de línea de comando. Si los datos de entrada no se proporcionan como argumento de línea de comando, debería generar un error y sugerir cómo usar el script. Escribe el script, pero antes dime el algoritmo que se debe implementar aquí.

Algoritmo

  1. 1. Sea el número de entrada=n
  2. 2. Establezca rev=0, sd=0 (el dígito inverso y único se establece en 0)
  3. 3. n % 10, encontrará y dará el dígito más a la izquierda
  4. 4. el número inverso se genera como rev * 10 + sd
  5. 5. Disminuya el número de entrada (n) en 1.
  6. 6. Si n > 0, entonces vaya al paso 3; de lo contrario, vaya al paso 7.
  7. 7. Imprimir rev.

Ahora nuevamente, cree un archivo llamado "numbers.sh" y agregue el siguiente código.

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

Otorgue un permiso de ejecución en el archivo y ejecute el script como se muestra a continuación.

chmod 755 numbers.h

Condición 1: cuando la entrada no se proporciona como argumento de línea de comando, obtendrá el siguiente resultado.

Salida de muestra
./numbers.sh

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

Condición 2: cuando la entrada se proporcionó como argumento de línea de comando.

./numbers.sh 10572 

Reverse number is 27501

El script anterior funcionó perfectamente y el resultado fue justo lo que necesitábamos.

4. Se supone que debe calcular un número real directamente desde la terminal y no desde cualquier script de shell. ¿Qué harás (digamos que los números reales son 7,56 y 2,453)?

Por ejemplo, ejecute el siguiente comando para calcular números en tiempo real usando el comando bc como se muestra.

echo 7.56 + 2.453 | bc

10.013
5. Se supone que debes encontrar el valor de pi hasta 100 lugares decimales, cuál es la forma más fácil de obtener el resultado.
pi 100 

3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067

¡Obviamente! Debemos tener instalado el paquete ‘pi‘. Simplemente haga apt o yum para obtener el paquete necesario para instalar ‘pi‘ en la distribución que está utilizando.

Eso es todo por ahora. Estaré aquí nuevamente con otro artículo interesante muy pronto. Hasta entonces, estad atentos y conectados a linux-console.net. No olvide brindarnos sus valiosos comentarios en la sección de comentarios a continuación.