Appeler un script .sh depuis un autre script .sh

Fermé
mum767 Messages postés 2 Date d'inscription dimanche 25 août 2019 Statut Membre Dernière intervention 25 août 2019 - Modifié le 26 août 2019 à 10:26
mamiemando Messages postés 33076 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 avril 2024 - 30 août 2019 à 16:41
Bonjour à tous,

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 !!!
A voir également:

2 réponses

mamiemando Messages postés 33076 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 avril 2024 7 748
Modifié le 26 août 2019 à 10:26
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 fichier
chmod 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'environnement
PATH
(pour voir sa valeur, lance
echo $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 vers
script2.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
1
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
27 août 2019 à 16:21
Ne pas oublier qu'il faut que le fichier/script en question soit executable :
$ touch blabla
$ ./blabla
bash: ./blabla: Permission denied
$ chmod +x ./blabla
$ ./blabla
1
mamiemando Messages postés 33076 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 avril 2024 7 748
30 août 2019 à 16:41
Note que
chmod a+x
était effectivement évoqué dans mon message, cf 3e paragraphe :-)
0
lEprofSonDkon Messages postés 211 Date d'inscription jeudi 13 décembre 2018 Statut Membre Dernière intervention 8 octobre 2022 13
25 août 2019 à 18:03
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.
0
mum767 Messages postés 2 Date d'inscription dimanche 25 août 2019 Statut Membre Dernière intervention 25 août 2019
25 août 2019 à 18:14
désolé mais comment?
je suis un débutant et je ne crois pas savoir la façon de faire
0
lEprofSonDkon Messages postés 211 Date d'inscription jeudi 13 décembre 2018 Statut Membre Dernière intervention 8 octobre 2022 13 > mum767 Messages postés 2 Date d'inscription dimanche 25 août 2019 Statut Membre Dernière intervention 25 août 2019
26 août 2019 à 15:35
#!/bin/sh

echo "vérification..."
/chemin/deuxiemeScript arg_n arg_n+1

tu vois, pas de mystère. ;)
0