Je suis très nouveau dans bash et jessaie décrire le premier script nommé hello_world
dans le chemin de /Users/me/Study/Linux
avec le contenu écrit par vim:
#! bin/bash echo Hello World
Cependant, lerreur se produit lors de lexécution:
-bash: /Users/me/Study/Linux/hello_world: bin/bash: bad interpreter: No such file or directory
Jai lu de nombreuses questions sur le problème mais je me sens toujours totalement perdu. 🙁 Je « serai très reconnaissant pour votre aide.
Commentaires
- essayez
#! /bin/bash
pour le première ligne - @TedWrigley Thx, ça marche; mais pourquoi?
- Le shebang (#!) prend un chemin vers un exécutable, et sous Unix / linux, les chemins doivent commencer par une barre oblique.
Réponse
La première ligne de votre script bash doit ressembler à ceci.
#!/bin/bash
Ceci est appelé une « ligne shebang » car les deux premiers caractères #!
sont un shebang . La ligne shebang indique à lordinateur quel programme exécutable doit être utilisé pour interpréter le reste du script. Dans ce cas, vous « écrivez un script bash, mais vous pourriez tout aussi bien écrire un script pour python ou awk, et vous devez indiquer au système quel interpréteur utiliser en fonction de la langue dans laquelle le script est écrit.
La raison pour laquelle votre ligne shebang #! bin/bash
ne fonctionne pas est b parce que vous navez pas fourni de chemin valide (généralement un chemin absolu ) vers linterpréteur. Si vous omettez la barre oblique initiale /
, le shell recherche alors bin
dans le répertoire de travail actuel mais ne le trouve pas.
Puisque vous commencez tout juste à apprendre bash, je vous suggère de lire un livre. Cela vous évitera davoir à poser trop de questions. Apprendre le bash Shell, 3e édition par Cameron Newham est assez bon.
#!
est sans importance –#!/bin/bash
et#! /bin/bash
les deux et#!bin/bash
ou#! bin/bash
ne fonctionnera que si vouscd /
en premier (donc bin est trouvé ). Depuis votre lien Wikipédia " Vides après! sont OK "