Je veux exécuter un programme via un script.
normalement je tape Mon script ressemble à ceci: P> ./ programme code> dans la coque et le programme commence.
#!/bin/sh
cd /home/user/path_to_the_program/
sh program
5 Réponses :
Vous n'avez pas besoin du "sh" ici. Il suffit de mettre "programme" sur la dernière ligne par elle-même. P>
Il me dit: "Programme: non trouvé"
OK, y a-t-il un moyen de l'exécuter via un script sans le mettre à la voie?
Oui. Utilisez "./program" une fois dans le répertoire ou écrivez le chemin complet, quelque chose comme "/ home / utilisateur / path_to_the_program / programme". Assurez-vous que le programme est exécutable (utilisez Chmod pour cela.)
Veuillez expliquer pourquoi i> le hs code> n'est pas nécessaire.
si ./ programme code> fonctionne dans la coquille, pourquoi ne pas l'utiliser dans votre script?
SH Programme CODE> LANCE SH TO Essayez d'interpréter
programme code> en tant que script shell. Très probablement, ce n'est pas un script, mais un autre fichier exécutable, c'est pourquoi il échoue. P> P>
Cela a fonctionné mais je suis incapable de comprendre pourquoi cela fonctionne de cette façon, mais si je l'exécute comme . / home / utilisateur / chemin_to_program / programme code> il donne une erreur
@Vibhanshubiswas Les parties probablement de votre script s'appuient sur le répertoire de travail actuel étant le répertoire où le script est.
Vous n'avez pas besoin du Essayez ceci: p> sh code> et on dirait que vous n'avez pas le chemin d'accès au programme dans votre
$ chemin code>.
Il serait préférable que l'utilisation de 'sh' ait été expliquée. Pourquoi ça marche-t-il avec 'sh'?
Cela devrait suffire:
/home/user/path_to_the_program/program
Donner le chemin peut ne pas fonctionner si le programme dépend des chemins relatifs de son annuaire actuel. Par exemple, le programme pourrait dépendre des fichiers d'entrée qui figurent dans le même répertoire que le programme.
Indépendamment de la manière dont cela est fait, le chemin complet doit venir de / quelque part / - sinon sur le chemin, puis via la ligne Shebang, sinon là, il doit être explicitement défini via certains moyens.
Lorsque vous tapez la coque tente d'exécuter le programme en fonction de la détermination de la manière dont il détermine le fichier doit être exécuté. S'il s'agit d'un binaire, cela tentera d'exécuter le sous-programme d'entrée. Si le shell détecte, il s'agit d'un script, par exemple par l'utilisation de p> ou p> ou plus généralement P> sh program