Appeler un script .sh depuis un autre script .sh
Bonjour à tous,
J'espère que vous allez tous à merveille.
J'ai créé des fichiers
Une aide serait la bien venue
Merci d'avance !!!
J'espère que vous allez tous à merveille.
J'ai créé des fichiers
.sh. Le premier c'est pour s'authentifier. Mais après cela je veux que l'utilisateur soit redirigé automatiquement vers l'autre fichier après 2 à 3 secondes
Une aide serait la bien venue
Merci d'avance !!!
2 réponses
-
Bonjour
Depuis un script shell, tu peux exécuter un script shell comme tu le ferais depuis un terminal, e.g. :
sh /chemin/vers/fichier.sh
Note qu'il existe plusieurs interpréteur shell (bash, dash, tcsh). Si ton script 2 utilise de la syntaxe bash, l'appel deviendra :
bash /chemin/vers/script2.sh
Note que bien souvent, dans un script (shell, python, perl, ...) on ajoute en tête de fichier une ligne indiquant l'interpréteur à utiliser (on appelle ça le shebang), qui évite ainsi de se demander dans script1 quel interpréteur utiliser. Mais cela requiert de donner au préalable des droits en exécution à ce fichierchmod a+x /chemin/vers/le/script2.sh
.
Ensuite d'exécuter le script pourra être lancé ainsi :
/chemin/vers/le/script2.sh
ou, si tu es dans le répertoire du script :
./script2.sh
De plus, il faut savoir que quand tu lances une commande dans un terminal, ton interpéteur shell commence par regarder ta variable d'environnementPATH
(pour voir sa valeur, lanceecho $PATH
), pour voir de quelle commande il s'agit. Donc si ton script est dans un de ces répertoire, il ne sera pas nécessaire de préciser le chemin relatif/absolu versscript2.sh
. Tu pourras lancer directement :
script2.sh
L'endroit typique où mettre de tels scripts, c'est dans/usr/local/bin
. Pour mettre ton script à cette endroit, il faudra l'y copier avec des droits root (sudo cp /chemin/vers/le/script2.sh /usr/local/bin
). Le script devient alors ainsi accessible pour tous les utilisateurs.
Bonne chance -
salut,
il n'y a pas de mystère.
tu appelles le premier script pour l'exécuter;
il faut faire pareil avec le second* !
--- dans le précédent.