Shell Script para mostrar el estado de salida usando el comando Grep

Linux proporciona a los usuarios una gran característica interesante de la herramienta de línea de comandos junto con una interfaz gráfica de usuario donde pueden realizar tareas mediante el comando de ruina. Todos estos comandos devuelven un estado de acuerdo a su ejecución. Su valor de ejecución se puede utilizar para mostrar errores o realizar alguna otra acción en un script de shell. 

El estado de salida es el siguiente según su ejecución. 

  • El comando se ejecutó con éxito: 0 (valor del estado de salida)
  • El comando fue un error: 1 – 255 (el valor del estado de salida será b/w 1 a 255)

Estado de salida: cada comando de Linux tiene un estado de salida después de la ejecución. Su valor se puede obtener llamando $? (variable de capa). Da el valor del comando anterior ejecutado. 

Note: Command for printing exit status for privious command:  echo $? 

Aquí, en este artículo, se escribirá un script de shell para mostrar el estado de salida mediante el comando grep . Mostrará un ejemplo de scripts de shell para mostrar el estado de salida. 

Acercarse:

Para escribir el código de script para esto, siga los pasos a continuación.

  1. Use el comando táctil para crear la base de datos, que es un archivo de texto llamado gfg.txt.
  2. Ahora obtenga la clave del usuario si desea insertarla en la base de datos o verificar que el libro esté presente en una base de datos o no (significa que el libro se ha leído o no).
  3. Ahora, de acuerdo con la clave elegida, haga el bloque if-else y lea el nombre del libro del usuario.
  4. En la primera condición, verifique la disponibilidad del libro usando el comando grep y obtenga el valor de estado de salida y verifique si es 0 o no. Y la segunda condición simplemente obtiene el nombre del libro y lo agrega a la base de datos.
  5. Ahora, imprima el estado del libro leído de acuerdo con el valor del estado de salida del comando anterior.

Código de script de shell: 

# shell script for display exit status by using grep command

# make an file gfg.txt to contain the book name of user that he has read 
touch gfg.txt 

# now print user to tell him the scenario 
echo "Please, enter the some of your book name that you 
    have read or a book name that you want to know read status of that book"
echo

# print the key to ask user find the book or write the book name
echo "Please enter a key like following"
echo "Enter 1 to know the book read status" 
echo "Enter 2 to write the book name in book database ( gfg.txt )"

# read the entered key
read key
echo

# check the condition using if-else statement
if [[ $key == 1 ]]
then 
    # loop to get the name of book continuously 
    while [ 1 ]
    do
        # print the initial statement
        echo "Enter book name about that you want to know read status or -1 for exit"
        
        # read the book name and find in gfg.text using grep command
        read bookName
        
        # check condition to break the loop
        if [[ $bookName == -1 ]]
        then
            break
        else
        
            # now find the book in gfg.text
            count=$(grep -c "$bookName" gfg.txt)
            
            # get the exit status of the previous command 
            exitStatus=$?
                
            # check the value of exitStatus and print output according that 
            if [[ $exitStatus == 0 ]]
            then 
                # give the msg to user that he have read that book 
                echo "Your previous command exit status is $exitStatus"
                echo "You have read the $bookName book."
                echo 
            else
                # give the msg to user that he didn't read that book yet.
                echo "Your previous command exit status is $exitStatus"
                echo "You didn't read $bookName book yet."
                echo
            fi
            
        fi
    done
    
    
else
    # loop to get the name of books continuously 
    while [ 1 ]
    do
        echo "Enter book name that you want write in database (gfg.txt) or -1 for exit"
        
        # read the name of book
        read bookName
        
        # check the condition to break the loop
        if [[ $bookName != -1 ]]
        then
            # write the book name in text file
            echo $bookName >> gfg.txt
        else
            break
        fi
        echo
    done
fi
        

En el primer ejemplo se mostrará la inserción del nombre del libro en la base de datos (gfg.text). 

En el segundo ejemplo, sabrá sobre la verificación del estado de lectura del libro (verificación interna usando el comando grep y el estado de salida):

Publicación traducida automáticamente

Artículo escrito por aditya32123 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *