Introducción
Un script de shell es una herramienta poderosa para automatizar tareas en sistemas basados en Unix. Un requisito común al escribir scripts de shell es verificar la existencia de un programa o comando en particular en el sistema. Este artículo lo guiará a través de varios métodos para realizar esta verificación, lo que le permitirá hacer que su secuencia de comandos sea más robusta y confiable.
Resumen:
- Usando el comando -v
- Usando el tipo de comando
- En base a qué comando
- Usando el comando hash
- Sugerencias de mejores prácticas
Usa el comando -v
El comando `-v` es un método compatible con POSIX para verificar la existencia de un programa. Es un comando de shell incorporado que devuelve la ruta a un comando si existe en el sistema. Aquí hay un ejemplo de cómo usarlo:
if command -v program_name > /dev/null 2>&1; then
echo "Program exists"
else
echo "Program does not exist"
fi
Reemplace "program_name" con el programa que desea verificar.
Utilice el comando de tipo
El comando de tipo es otro comando de shell incorporado que se puede usar para verificar la existencia de un programa. Es similar al comando -v pero también proporciona información sobre el tipo de comando (alias, función o archivo). He aquí cómo usarlo:
if type program_name > /dev/null 2>&1; then
echo "Program exists"
else
echo "Program does not exist"
fi
Reemplace "program_name" con el programa que desea verificar.
Confíe en el comando which
El comando which es una utilidad externa que busca un comando dado en los directorios especificados por la variable de entorno PATH. Si bien no es compatible con POSIX, comúnmente está disponible en sistemas basados en Unix. He aquí cómo usarlo:
if which program_name > /dev/null 2>&1; then
echo "Program exists"
else
echo "Program does not exist"
fi
Reemplace "program_name" con el programa que desea verificar.
Emplear el comando hash
El comando hash es un comando de shell incorporado que mantiene una tabla hash de los comandos ejecutados recientemente, lo que acelera la búsqueda de comandos. Puede usarlo para verificar la existencia de un programa de la siguiente manera:
if hash program_name 2> /dev/null; then
echo "Program exists"
else
echo "Program does not exist"
fi
Reemplace "program_name" con el programa que desea verificar.
Sugerencias de mejores prácticas
- Siempre prefiera los comandos de shell incorporados como
command -v
, type o hash sobrewhich
utilidades externas para una mejor compatibilidad y rendimiento. - Redirigir la salida a /dev/null (usando '> /dev/null 2>&1') es esencial para evitar que aparezca una salida innecesaria o que interfiera con el script.
- Si necesita controlar varios programas, use un bucle y una matriz para que su secuencia de comandos sea más concisa y mantenible.
Conclusión
En este artículo, hemos discutido cuatro métodos diferentes para verificar si un programa existe en un script de shell. Si bien command -v
es el método, el tipo, el hash y los comandos más recomendados y ampliamente compatibles, también se pueden usar según los requisitos y el entorno de su sistema. Al incorporar estas verificaciones en sus scripts de shell, puede asegurarse de que sus scripts sean más confiables y se adapten a varios entornos.