Cómo escribir y usar las funciones y bibliotecas de shell personalizadas

Cómo escribir y usar las funciones y bibliotecas de shell personalizadas

En Linux, los scripts de shell nos ayudan de muchas maneras diferentes, incluida la realización o incluso la automatización de ciertas tareas de administración del sistema, creando herramientas de línea de comandos simples y muchas más.

En esta guía, mostraremos nuevos usuarios de Linux dónde almacenar de manera confiable los scripts de shell personalizados, explicar cómo escribir funciones y bibliotecas de shell personalizadas, usar funciones de bibliotecas en otros scripts.

Dónde almacenar guiones de shell

Para ejecutar sus scripts sin escribir una ruta completa/absoluta, deben almacenarse en uno de los directorios en el $ Variable ambiental.

Para comprobar su $, emite el comando a continuación:

$ echo $ ruta /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games 

Normalmente, si el directorio papelera existe en un directorio de inicio de usuarios, se incluye automáticamente en su $. Puedes almacenar tus scripts de shell aquí.

Por lo tanto, crea el papelera directorio (que también puede almacenar Perl, Awk o Pitón scripts o cualquier otro programa):

$ mkdir ~/bin 

A continuación, cree un directorio llamado lib (abreviatura de bibliotecas) donde mantendrá sus propias bibliotecas. También puede mantener bibliotecas para otros idiomas como C, Python, etc. Debajo de él, cree otro directorio llamado mierda; Esto almacenará particularmente en las bibliotecas de Shell:

$ mkdir -p ~/lib/sh 

Crea tus propias funciones y bibliotecas de shell

A función de shell es un grupo de comandos que realizan una tarea especial en un script. Funcionan de manera similar a los procedimientos, subrutinas y funciones en otros lenguajes de programación.

La sintaxis para escribir una función es:

function_name () Lista de comandos 

Por ejemplo, puede escribir una función en un script para mostrar el fecha como sigue:

showDate () date; 

Cada vez que quieres mostrar fecha, Simplemente invoque la función anterior usando su nombre:

$ showdate 

A biblioteca es simplemente un script de shell, sin embargo, puede escribir una biblioteca para almacenar solo sus funciones a las que luego puede llamar desde otros scripts de shell.

A continuación se muestra un ejemplo de una biblioteca llamada libmyfuncs.mierda en mi ~/lib/sh Directorio con más ejemplos de funciones:

#!/bin/bash #function para enumerar claramente los directorios en la ruta showPath () Oldifs = "$ ifs" #Store Old Interno Campo Separator ifs =: #Specify un nuevo separador de campo interno para DIR en $ ruta; hacer eco $ dir; Dado ifs = "$ Oldifs" #Restore Old Interno Field Separator #Function para mostrar el usuario registrado showUsers () echo -e "A continuación se muestran el usuario registrado en el sistema: \ n" w #print a los detalles de un usuario printuserDets () Oldifs = "$ ifs" #Store Old Interno Campo Separator ifs =: #Specify a un nuevo separador de campo interno Leer -p "Ingrese el nombre de usuario para buscar:" Uname #Read UserName echo "" #Read y almacene desde una cadena aquí. valores en variables usando: como delimitador de campo lee -r nombre de usuario pase uid gid comentarios homedir shell <<< "$(cat /etc/passwd | grep "^$uname")" #print out captured values echo -e "Username is : $username\n" echo -e "User's ID : $uid\n" echo -e "User's GID : $gid\n" echo -e "User's Comments : $comments\n" echo -e "User's Home Dir : $homedir\n" echo -e "User's Shell : $shell\n" IFS="$oldifs" #store old internal field separator  

Guardar el archivo y hacer que el script sea ejecutable.

Cómo invocar funciones de una biblioteca

Para usar una función en un lib, Primero necesitas incluir el lib En el script de shell donde se utilizará la función, en el formulario a continuación:

ps ./ruta/a/lib o $ Source/Path/To/Lib 

Entonces usarías la función huellas de printuser de la lib ~/lib/sh/libmyfuncs.mierda en otro script como se muestra a continuación.

No tiene que escribir otro código en este script para imprimir los detalles de un usuario en particular, simplemente llame a una función existente.

Abra un nuevo archivo con el nombre prueba.mierda:

#!/bin/bash #include lib . ~/lib/sh/libmyfuncs.Función sh #use de lib printuserDets #exit script salga 0 

Guárdelo, luego haga que el script se ejecute y ejecutelo:

Prueba de $ chmod 755.sh $ ./prueba.mierda 
Escribir funciones de shell

En este artículo, le mostramos dónde almacenar los scripts de shell de manera confiable, cómo escribir sus propias funciones y bibliotecas de shell, invocar funciones de bibliotecas en scripts de shell normales.

A continuación, explicaremos una forma directa de configurar Empuje como un IDE para scripting bash. Hasta entonces, siempre manténgase conectado con TecMint y también comparta sus pensamientos sobre esta guía a través del formulario de comentarios a continuación.