Probar la ejecutabilidad con test -x
En este paso, aprenderá cómo verificar si un archivo es ejecutable utilizando el comando test
con la opción -x
. El comando test
es un comando interno de la shell que evalúa expresiones condicionales. La opción -x
específicamente verifica los permisos de ejecución.
Primero, creemos un archivo de texto simple en su directorio ~/project
. Utilizaremos el comando echo
para colocar algún texto en un archivo llamado my_script.sh
.
echo "echo 'Hello from the script!'" > ~/project/my_script.sh
Ahora, veamos si este archivo es ejecutable. Por defecto, cuando crea un nuevo archivo de esta manera, no tendrá permisos de ejecución.
Utilice el comando test -x
seguido de la ruta al archivo:
test -x ~/project/my_script.sh
Después de ejecutar este comando, no verá ninguna salida si la prueba es exitosa (lo que significa que el archivo NO es ejecutable). Si el archivo fuese ejecutable, test -x
devolvería un estado de 0, que generalmente se interpreta como "verdadero" o "éxito" en la programación de shell, pero por defecto no imprime nada en la terminal.
Para ver el resultado del comando test
, podemos verificar el estado de salida del comando anterior utilizando $?
. Un estado de salida de 0
significa que la prueba fue verdadera (el archivo es ejecutable), y un estado distinto de cero (generalmente 1
) significa que la prueba fue falsa (el archivo no es ejecutable).
echo $?
Debería ver una salida de 1
, lo que indica que my_script.sh
actualmente no es ejecutable.
Ahora, hagamos el archivo ejecutable utilizando el comando chmod
. chmod
se utiliza para cambiar los permisos de archivos y directorios. Utilizaremos +x
para agregar el permiso de ejecución para el propietario del archivo.
chmod +x ~/project/my_script.sh
Ahora, probemos la ejecutabilidad nuevamente:
test -x ~/project/my_script.sh
Y verifiquemos el estado de salida:
echo $?
Esta vez, la salida debería ser 0
, lo que confirma que el archivo ahora es ejecutable.
Finalmente, intentemos ejecutar el script para ver la salida:
~/project/my_script.sh
Debería ver:
Hello from the script!
Esto confirma que ha hecho el archivo ejecutable y lo ha ejecutado con éxito.