Categorías: Linux

Cómo pausar un script Bash con el comando de suspensión de Linux

Fatmawati Achmad Zaenuri / Shutterstock.com

El comando de suspensión hace que su computadora Linux no haga nada. Tal vez sea contrario a la intuición, pero a veces lo que se necesita es un período de inactividad. Este artículo le muestra cómo usar este comando de shell Bash de manera efectiva.

Usar sleepes fácil. En la línea de comando, escriba sleepun espacio, un número y luego presione Entrar.

dormir 5

El cursor desaparecerá durante cinco segundos y luego regresará. ¿Que pasó? El uso sleepen la línea de comando indica a Bash que suspenda el procesamiento durante el tiempo que proporcionó. En nuestro ejemplo, fueron cinco segundos.

Podemos pasar las duraciones a sleepdías, horas y minutos, así como a segundos. Para hacer esto, incluya un sufijo de d, h, m,o scon la duración. Para hacer que el sueño se detenga durante un día, cuatro horas, siete minutos y cinco segundos, use un comando como este:

dormir 1d 4h 7m 5s

El ssufijo (por segundos) es opcional. Sin sufijo, sleeptratará cualquier duración como segundos. Suponga que quiere hacer una sleeppausa de cinco minutos y veinte segundos. Un formato correcto de este comando es:

dormir 5m 20

Si olvida proporcionar el msufijo en la duración de los minutos, le indicará  sleepque haga una pausa durante cinco segundos y luego nuevamente durante veinte segundos. Así que sleephará una pausa de 25 segundos.

Muchos comandos requieren que proporciones parámetros en un orden específico, pero sleepes muy indulgente. Puede proporcionarlos en cualquier orden y sleeptendrá sentido. También puede proporcionar un número de punto flotante como parámetro. Por ejemplo, 0,5 h es una forma válida de indicar que desea sleephacer una pausa de media hora.

Todos los siguientes comandos (cada vez más excéntricos) indican sleepque se pause durante 10 segundos.

dormir 10
dormir 5 5s
Dormir 1 1 1s 1 1 1s 1 2
dormir 0.16667m

Uso de la suspensión para hacer una pausa antes de un comando

El sleepcomando puede usarse para dar una pausa antes de la ejecución de un comando. Este comando se detendría durante 15 segundos y luego emitiría un pitido.

dormir 15 && echo -en '\ 007'

Uso de la suspensión para hacer una pausa entre dos comandos

Puede utilizar sleeppara dar una pausa entre dos comandos. Este comando enumeraría los archivos en su directorio de Documentos, se detendría durante cinco segundos y luego cambiaría el directorio de trabajo actual a su directorio de inicio:

ls -R ~ / Documentos && dormir 5 && cd ~

Uso de la suspensión para pausar la ejecución de un script

Puede utilizar el sleepcomando en scripts de shell para pausar la ejecución del script durante un período de tiempo preciso. Normalmente, haría esto para permitir que algún proceso tenga tiempo suficiente para completarse antes de que el script continúe su procesamiento. También puede usarlo para limitar las solicitudes que un script realiza a otro recurso.

Para demostrar exactamente eso, aquí hay un script que llama a un servicio web de Google que usa curl. Cuando consulta el servicio web con el número ISBN de un libro, responde con un volcado de datos JSON sobre ese libro. Podemos analizar esos datos pasándolos a través de la jqutilidad para recuperar el título del libro. Para que el script no haga hincapié en el servicio web, duerme durante un segundo entre las solicitudes web.

Cree un archivo que contenga el siguiente texto y guárdelo como  check_book.sh.

#! / bin / bash

para reservar en `cat $ 1`
hacer
 echo $ libro ":"
 curl -s https://www.googleapis.com/books/v1/volumes?q=isbn:$book | jq '.items | . [] | .volumeInfo.title '
 eco ""
 dormir 1
hecho

echo "Todo listo".

Escriba el siguiente comando para establecer los permisos de ejecución y hacer que el script sea ejecutable.

chmod + x check_book.sh

El script requiere las utilidades curly jq. Úselos apt-getpara instalar estos paquetes en su sistema si está usando Ubuntu u otra distribución basada en Debian. En otras distribuciones de Linux, utilice la herramienta de administración de paquetes de su distribución de Linux.

sudo apt-get install curl
sudo apt-get install jq

Cree un archivo de texto que contenga los siguientes números y guárdelo como books.txt.

9781565921276
9781874416685
9781565921672
9780521431088
9781491941591

Ejecute el check_book.shscript y pase el books.txtarchivo como parámetro.

./check_book.sh books.txt

Las solicitudes se realizan al servicio web de Google a intervalos de un segundo. El título del libro aparecerá poco después de que se consulte cada número de ISBN.

Eso es todo lo que hay que hacer sleep. El funcionamiento interno del check_book.shguión está más allá del alcance de este artículo. La secuencia de comandos se eligió únicamente para ilustrar un uso válido del sleepcomando. Si desea leer más sobre los dos componentes principales del script, consulte la curl página del  proyecto y el  jq manual en línea .

responroot

Compartir
Publicado por
responroot
Etiquetas: linux

Entradas recientes

Steamlytics: La nueva herramienta imprescindible para los gamers de Steam

  El mundo del gaming ha experimentado un crecimiento exponencial en los últimos años. La…

1 año hace

Cuándo reemplazar su antigua unidad flash USB

Stokkete/Shutterstock.com ¿Sigue utilizando una unidad flash USB obsoleta para almacenar sus archivos? ¿Por qué no…

2 años hace

¿Qué es una pantalla Nano IPS?

LG Los fabricantes siempre intentan mejorar el rendimiento de imagen de los monitores. Como resultado,…

2 años hace

10 formas de jugar con un presupuesto bajo (o nulo)

Patty Chan/Shutterstock.com Si cree en lo que ve en las redes sociales, puede pensar en…

2 años hace

¿Demasiadas suscripciones? Aquí está cómo empezar a cortarlos

Seksan.TH/Shutterstock.com Los servicios de suscripción como Netflix, Game Pass y Spotify nos permiten consumir tantas…

2 años hace

Cómo configurar la puerta de enlace predeterminada en Linux

fatmawati achmad zaenuri/Shutterstock El acceso a Internet, oa cualquier otra red, se rige por la…

2 años hace