J'ai donc écrit mon premier script bash:
#!/bin/bash
echo 'hello world!'
exit
Je sais qu'il a le bon emplacement pour s'exécuter et est exécutable:
$ which bash
/bin/bash
$ chmod +x myscript.sh
Maintenant, je veux l'exécuter depuis la ligne de commande, mais j'obtiens une erreur:
$ myscript.sh
myscript.sh: command not found
Alors au lieu de cela, j'essaie et cela fonctionne:
$ bash myscript.sh
hello world!
Est-ce ainsi que je devrai toujours l'exécuter? J'ai l'impression d'avoir exécuté d'autres scripts sans avoir à le précéder bash
. Comment puis-je exécuter myscript.sh sans avoir à le précéder bash
?
Mise à jour: Voici une bonne explication de pourquoi et comment exécuter un script bash .
la source
En plus des conseils de Fernández, faites-le précéder d'un point, comme ceci:
Pour des raisons de sécurité, le répertoire en cours n'est jamais inclus dans le chemin d'exécution.
la source
Il y a 3 façons d'exécuter le script bash. Par exemple, myscript.sh est le script que vous voulez exécuter.
Méthode 1
exécuter le script en tant que sous-processus, ce qui déclenchera des problèmes d’autorisation si ce n’est le propriétaire en écriture. Vous pouvez modifier les autorisations par chmod.
Méthode 2
exécutez le script en tant qu'utilisateur actuel. si le script bash est bien écrit, il ne devrait pas y avoir d'erreur.
Méthode 3
semblable à la méthode 2 mais un raccourci. Notez que ceci est basé sur l'hypothèse que vous utilisez le shell bash dans la session en cours.
J'espère que cela t'aides!:)
la source