1 votos

No se puede ejecutar shell scripts en OS Monterrey (12.3.1) después de actualizar desde Big Sur (11.4)

Yo uso mucho los shell scripts. Desde la actualización a OS Monterrey 12.3.1, ninguno de mis shell scripts se ejecuta. Están en las mismas ubicaciones que estaban antes de la actualización a Monterrey.

Ejecuto un shell script simplemente escribiendo su nombre en el terminal bash desde el directorio del script, y pulsando enter:

~ cd /path/to/shellscript
~ shellscriptname [enter]

En Big Sur, el script se ejecutaría y los archivos se copiarían, pero en Monterrey,

 $ copyTestFiles
 -bash: copyTestFiles: command not found

No hay errores, sólo esta respuesta.

El script está preparado para su ejecución

-rwxr-xr-x

$ echo $PATH
/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/local/bin/python
$ which bash
/bin/bash

Se agradece cualquier orientación.

2voto

-bash: copyTestFiles: command not found es el error devuelto por bash , lo que indica que bash no encontró el shell script.

Desde man bash (EJECUCIÓN DE COMANDOS):

If the name is neither a shell function nor a builtin, and contains no
slashes, bash searches each element of the PATH for a  directory con-
taining an executable file by that name

Así que para encontrar un shell script/comando ("nombre" en el contexto del extracto de la página man) en el directorio actual, PATH debe incluir un . para el directorio actual. Sin embargo, esto es una mala práctica de seguridad (por ejemplo, un atacante podría añadir un archivo llamado ls en un directorio), por lo que es mejor utilizar ./copyTestFiles para ejecutar un shell script en el directorio actual (o para añadir la ruta completa a PATH ).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X