1 votes

Impossible d'exécuter des scripts scripts sur l'OS Monterrey (12.3.1) après une mise à jour depuis Big Sur (11.4)

J'utilise beaucoup les scripts du shell. Depuis la mise à jour vers OS Monterrey 12.3.1, aucun de mes scripts ne s'exécute. Ils se trouvent au même endroit qu'avant la mise à jour vers Monterrey.

J'exécute un script simplement en tapant son nom dans le terminal bash à partir du répertoire du script, et en appuyant sur la touche Entrée :

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

À Big Sur, le script s'exécute et les fichiers sont copiés, mais à Monterrey,

 $ copyTestFiles
 -bash: copyTestFiles: command not found

Il n'y a pas d'erreur - juste cette réponse.

Le script est prêt à être exécuté

-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

Tout conseil est le bienvenu.

2voto

nohillside Points 82672

-bash: copyTestFiles: command not found est l'erreur renvoyée par bash , indiquant que bash n'a pas trouvé le shell script.

De man bash (EXÉCUTION DE LA COMMANDE) :

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

Donc pour trouver un shell script/commande ("nom" dans le contexte de l'extrait de la page de manuel) dans le répertoire courant, PATH doit comprendre un . pour le répertoire actuel. Il s'agit cependant d'une mauvaise pratique en matière de sécurité (par exemple, un pirate pourrait ajouter un fichier appelé ls dans un répertoire), il est donc préférable d'utiliser ./copyTestFiles pour exécuter un script shell dans le répertoire courant (ou pour ajouter le chemin complet à PATH ).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X