Appeler un script .sh depuis un autre script .sh

Messages postés
2
Date d'inscription
dimanche 25 août 2019
Statut
Membre
Dernière intervention
25 août 2019
-
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 !!!
Afficher la suite 

2 réponses

Messages postés
212
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
17 septembre 2019
13
0
Merci
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.
mum767
Messages postés
2
Date d'inscription
dimanche 25 août 2019
Statut
Membre
Dernière intervention
25 août 2019
-
désolé mais comment?
je suis un débutant et je ne crois pas savoir la façon de faire
lEprofSonDkon
Messages postés
212
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
17 septembre 2019
13 > mum767
Messages postés
2
Date d'inscription
dimanche 25 août 2019
Statut
Membre
Dernière intervention
25 août 2019
-
#!/bin/sh

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

tu vois, pas de mystère. ;)
Commenter la réponse de lEprofSonDkon
Messages postés
28993
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 septembre 2019
6642
0
Merci
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
Exileur
Messages postés
1430
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
9 septembre 2019
69 -
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
mamiemando
Messages postés
28993
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 septembre 2019
6642 -
Note que
chmod a+x
était effectivement évoqué dans mon message, cf 3e paragraphe :-)
Commenter la réponse de mamiemando