web-dev-qa-db-fra.com

L'exécutable ne s'exécutera pas

J'espère que mon poste est acceptable bien que je cours actuellement avec lubuntu, pas avec Ubuntu.

J'essaie de créer un fichier exécutable mais j'ai des difficultés.

J'ai créé un script avec un éditeur de texte et l'ai enregistré sur mon bureau:

#!/usr/bin
echo hello

J'ai exécuté Sudo chmod +xet Sudo chmod 755 dessus. Lorsque je double-clique dessus, une boîte de dialogue me demande d'exécuter ou d'exécuter le terminal comme suit:

enter image description here

Lorsque je clique sur Exécuter, j’obtiens Failed to execute child process "/home/name/Desktop/helloworld" (Permission denied)

Si je clique sur Exécuter dans le terminal, je viens d'obtenir une nouvelle fenêtre de terminal avec name@macbook:~/Desktop$, mais aucun signe de mon script.

1
Nick

Ceci est probablement causé par votre Shebang - la ligne #!/usr/bin de votre script.

Le Shebang dans un script est ce qui indique à Ubuntu/Linux/BASH quelle commande exécuter pour interpréter ou exécuter le script.

Les shebangs de script Python sont généralement #!/usr/bin/env python ou #!/usr/bin/python (dit d'exécuter le script avec l'interprète Python) et les scripts BASH (comme le vôtre) sont généralement #!/bin/bash (dit exécuter le script dans un terminal BASH) ou #!/bin/sh (exécuter le script avec sh ou Shell).

Étant donné que /usr/bin est un répertoire et non un programme/lien symbolique vers un programme, rien ne peut en réalité être exécuté.

Essayez de changer cette ligne initiale en #!/bin/bash:

#!/bin/bash
echo hello
1
RPiAwesomeness