web-dev-qa-db-fra.com

Le fichier de script shell (.sh) ne s'exécute pas et génère une erreur

Je suis nouveau sur Linux, et je veux exécuter un fichier de script shell (.sh) sur mon bureau. Ce sont les étapes que j'ai faites:

Voici le contenu du fichier test.sh sur mon bureau:

    #!bin/bash
    #test.sh
    echo "test"

Je veux exécuter (Execute) test.sh à travers le terminal. Ce sont les commandes que j'utilise:

cd Desktop

Je donne la permission de lancer test.sh avec:

chmod +x test.sh

puis essayez d'ouvrir le fichier:

test.sh

Mais je reçois cette erreur:

test.sh: command not found

et quand j'entre test.sh avec ./ encore obtenir cette erreur:

bash: ./test.sh: bin/bash: interpréteur incorrect: aucun fichier ni répertoire de ce type

Qu'est-ce que je fais mal?

2
ahmad abedini

bash: ./test.sh: bin/bash: interpréteur incorrect: aucun fichier ni répertoire de ce type

Remplacer:

#!bin/bash

Avec:

#!/bin/bash

bin/bash est un chemin relatif au répertoire actuel. /bin/bash est un chemin absolu qui fonctionne quel que soit le répertoire en cours.

Regardez aussi votre PATH:

echo $PATH

Si vous placez test.sh dans l'un des répertoires énumérés, vous pourrez l'exécuter sans le ./ ou un autre spécificateur de chemin. De nombreuses personnes créent un répertoire $HOME/bin, y placent tous leurs scripts et l'ajoutent à leur chemin.

6
John1024

Pour pouvoir exécuter votre script bash, remplacez la première ligne par

#!/bin/bash

C'est le binaire qui interprétera et exécutera votre script.

Pour exécuter un script bash, procédez comme suit:

./scriptname.sh

Dans votre exemple:

./test.sh

dans le répertoire où vous avez le script.

2
mattias