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.