Shell Bash en el concepto de escritorio de Unity

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 contradictorio, pero a veces un período de inactividad es el adecuado. Este artículo le muestra cómo utilizar eficazmente este comando de shell Bash.

En ayuda de sleep es fácil. En el tipo de línea de comando sleep, un espacio, un número y luego presione Entrar.

sleep 5

El cursor desaparecerá durante cinco segundos y luego regresará. Qué pasó? En ayuda de sleep en la línea de comando le dice a Bash que suspenda el procesamiento por la cantidad de tiempo que usted proporcionó. En nuestro ejemplo, fueron cinco segundos.

No hay salida visible del comando sleep 5

Podemos pasar de duraciones a sleep en días, horas y minutos, así como en segundos. Para hacer esto, incluya un sufijo de d, h, m, Dónde s con duración. Para interrumpir el sueño durante un día, cuatro horas, siete minutos y cinco segundos, use un comando como este:

sleep 1d 4h 7m 5s

los s el sufijo (por segundos) es opcional. Sin sufijo, sleep tratará cualquier duración como segundos. Supongamos que quisieras tener sleep pausa de cinco minutos y veinte segundos. Un formato correcto para este comando es:

sleep 5m 20

Si olvida proporcionar el m sufijo sobre la duración de los minutos, preguntarás sleep haga una pausa de cinco segundos, luego de nuevo durante veinte segundos. Entonces sleep se detendrá durante 25 segundos.

Muchos comandos requieren que proporciones parámetros en un orden específico, pero sleep es muy indulgente. Puede proporcionarlos en cualquier orden y sleep le dará 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 sleep tomar un descanso de media hora.

Todos los comandos posteriores (cada vez más excéntricos) indican sleep para hacer una pausa de 10 segundos.

sleep 10
sleep 5 5s
Sleep 1 1 1s 1 1 1s 1 2
sleep 0.16667m

Use el modo de suspensión para tomar un descanso antes de un pedido

los sleep El comando se puede utilizar para hacer una pausa antes de ejecutar un comando. Este comando se detendría durante 15 segundos y luego emitiría un pitido.

sleep 15 && echo -en '07'

Usar el modo de espera para hacer una pausa entre dos pedidos

Puedes usar sleep para dar un descanso entre dos comandos. Este comando enumera los archivos en su directorio de Documentos, se detiene durante cinco segundos y luego cambia el directorio de trabajo actual a su directorio de inicio:

ls -R ~/Documents && sleep 5 && cd ~

Salida de dos comandos separados por dormir

Usar el modo de espera para pausar la ejecución del script

Puedes usar el sleep en scripts de shell para suspender la ejecución del script durante un período de tiempo específico. Por lo general, haría esto para permitir el tiempo suficiente para que el proceso se complete antes de que la secuencia de comandos continúe procesándose. También puede utilizarlo para limitar el rendimiento de las solicitudes que realiza un script a otro recurso.

Para demostrar exactamente eso, aquí hay un script que llama a un servicio web de Google usando curl. Cuando consulta el servicio web con el ISBN número de un libro, responde con un volcado de datos JSON sobre ese libro. Podemos analizar estos datos pasándolos a través del jq utilidad para recuperar el título del libro. Para evitar que el script haga hincapié en el servicio web, se 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

for book in `cat $1`
do
 echo $book":"
 curl -s https://www.googleapis.com/books/v1/volumes?q=isbn:$book | jq '.items | .[] | .volumeInfo.title'
 echo ""
 sleep 1
done

echo "All done."

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

chmod +x check_book.sh

El guión requiere el curl y jq utilidades. Usar apt-get para 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

Ejecutar el check_book.sh guión y pásalo books.txt archivo como parámetro.

./check_book.sh books.txt

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

Eso es todo lo que hay para sleep. El funcionamiento interno de check_book.sh script está más allá del alcance de este artículo. El guión se eligió solo para ilustrar un uso válido de la sleep pedido. Si desea obtener más información sobre los dos componentes principales del script, consulte curl página del proyecto y el jq Manual en Linea.

Deja un comentario

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

Experto Geek - Tu Guía en Tendencias Tecnológicas