Ecrire script bash dans un script bash
Résolu/Fermé
Sam
-
3 janv. 2013 à 18:10
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 4 janv. 2013 à 09:19
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 4 janv. 2013 à 09:19
A voir également:
- Ecrire script bash dans un script bash
- Script vidéo youtube - Guide
- Microsoft activation script - Accueil - Windows
- Script bat - Guide
- Ecrire en gras sur whatsapp - Guide
- Bingo bash free - Télécharger - Divers Jeux
8 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
3 janv. 2013 à 18:16
3 janv. 2013 à 18:16
Salut,
et que lorsque je "compile"
Euh... c'est à dire ?
Pour rappel les scripts bash sont dits interprétés et non compilés ;-\
Peut être qu'en voyant ton script on verrait mieux où ça cloche, non ?
et que lorsque je "compile"
Euh... c'est à dire ?
Pour rappel les scripts bash sont dits interprétés et non compilés ;-\
Peut être qu'en voyant ton script on verrait mieux où ça cloche, non ?
Salut,
Oui, c'est pour cela que j'ai mis "compiler" entre guillemets.
Je voulais effectivement dire lorsque je l'interprète.
Pour le code, je peux mettre son corps :
Oui, c'est pour cela que j'ai mis "compiler" entre guillemets.
Je voulais effectivement dire lorsque je l'interprète.
Pour le code, je peux mettre son corps :
if test $# -ne 3 then echo "Il me faut 3 arguments! " else echo " #!/bin/sh ... Long script bash qui interroge une base mysql en utilisant deux des trois arguments et qui parse des fichiers ..." > chemin/fichier/nom_fichier.sh crontab -e */$3 * * * * chemin/fichier/nom_fichier.sh >/dev/null 2>&1; fi
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
3 janv. 2013 à 18:33
3 janv. 2013 à 18:33
Long script bash qui interroge une base mysql en utilisant deux des trois arguments et qui parse des fichiers
Est-ce que chacune des commandes contenues dans cet "echo" marche si elles sont lancées individuellement ?
Est-ce que chacune des commandes contenues dans cet "echo" marche si elles sont lancées individuellement ?
Oui, elles marchent toutes mais j'ai tout de même oublier de préciser que lorsque j'interprète mon code et qu'il me balance le script généré avec l'erreur "not found", le script généré met un blanc lorsque je réutilise une variable déclaré ce code. Exemple :
echo "#!/bin/sh test = 'mysql ...' test2 = $test + 1 // ici a la place de $test il me met un blanc alors que lorsque je l'exécute en dehors de ce script, j'obtient le bon résultat.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
3 janv. 2013 à 18:43
3 janv. 2013 à 18:43
Euh... en bash, il ne faut pas d'espace autour du signe égale quand on déclare une variable !
PS. La syntaxe avec les quotes inverses (le code html de CCM ne permet pas leur affichage) n'est plus de mise et est remplacée par : $(commande)
test=$(mysql ...)
PS. La syntaxe avec les quotes inverses (le code html de CCM ne permet pas leur affichage) n'est plus de mise et est remplacée par : $(commande)
Utilisateur anonyme
Modifié par qqchquicommenceparQ le 3/01/2013 à 18:41
Modifié par qqchquicommenceparQ le 3/01/2013 à 18:41
C'est tordu
Je vais dire comme toi: c'est tordu (mais je pense à autre chose). :(
mais j'utilise cette méthode car j'appelle crontab à la fin de mon script afin de exécuter plusieurs fois à une intervalle prédéfini le script généré dans un fichier
Quel rapport entre la méthode et crontab ?
un script doit être exécutable, pour être interprété par le noyau.
l'option -e de crontab ne fait pas ce que tu crois, regarde la page man!
Je vais dire comme toi: c'est tordu (mais je pense à autre chose). :(
mais j'utilise cette méthode car j'appelle crontab à la fin de mon script afin de exécuter plusieurs fois à une intervalle prédéfini le script généré dans un fichier
Quel rapport entre la méthode et crontab ?
un script doit être exécutable, pour être interprété par le noyau.
l'option -e de crontab ne fait pas ce que tu crois, regarde la page man!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci Zipe31, je vais essayer de remplacer tous cela pour voir si cela change quelque chose.
Pour les espaces, je n'en ai pas mis, c'etait juste pour illustrer mon problème.
Pour qqchquicommenceparQ, il me semblait que crontab -e permet d'éditer la table cron ?
Je dit 'j'utilise cette méthode" car je ne voit pas comment demander à crontab d'exécuter le script dans lequel il est appelé.
Il me semble que cela pourrait causé quelques petits problèmes.
C'est pour cela que je crée un script dans ce script pour pouvoir ensuite appeler le script généré avec crontab.
Si j'ai fait une erreur la dessus, ton aide est la bienvenue ! :)
Pour les espaces, je n'en ai pas mis, c'etait juste pour illustrer mon problème.
Pour qqchquicommenceparQ, il me semblait que crontab -e permet d'éditer la table cron ?
Je dit 'j'utilise cette méthode" car je ne voit pas comment demander à crontab d'exécuter le script dans lequel il est appelé.
Il me semble que cela pourrait causé quelques petits problèmes.
C'est pour cela que je crée un script dans ce script pour pouvoir ensuite appeler le script généré avec crontab.
Si j'ai fait une erreur la dessus, ton aide est la bienvenue ! :)
Pour Zipe31, j'ai remplacer toutes les quotes inverses mais maintenant il me met :
J'ai vérifié et a priori, je n'ai aucun problème de parenthèses !
Syntax error: "(" unexpected (expecting ")")
J'ai vérifié et a priori, je n'ai aucun problème de parenthèses !
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
3 janv. 2013 à 19:13
3 janv. 2013 à 19:13
Quel shell ? Quel système ?
Le shell : /bin/bash (c'est bien la commande echo $SHELL pour savoir, j'ai un doute)
Et le système : Debian (Dernière version)
Et le système : Debian (Dernière version)
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
3 janv. 2013 à 19:23
3 janv. 2013 à 19:23
Alors pourquoi tu mets "#!/bin/sh" dans tes scripts ?
Quel système ?
Vers où pointe /bin/sh ? (readlink -f /bin/sh)
Quel système ?
Vers où pointe /bin/sh ? (readlink -f /bin/sh)
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
3 janv. 2013 à 19:43
3 janv. 2013 à 19:43
Sinon /bin/sh pointe sur /bin/dash
D'où les erreurs avec "$(commande)" ;-((
D'où les erreurs avec "$(commande)" ;-((
Utilisateur anonyme
3 janv. 2013 à 21:52
3 janv. 2013 à 21:52
Je dit 'j'utilise cette méthode" car je ne voit pas comment demander à crontab d'exécuter le script dans lequel il est appelé.
[...]
C'est pour cela que je crée un script dans ce script pour pouvoir ensuite appeler le script généré avec crontab.
Je ne vois pas en quoi mettre un tourne vis au cul d'un autre tournevis va faire en sorte qu'il tourne plus régulièrement.
Cette "logique" m'échappe.
[...]
C'est pour cela que je crée un script dans ce script pour pouvoir ensuite appeler le script généré avec crontab.
Je ne vois pas en quoi mettre un tourne vis au cul d'un autre tournevis va faire en sorte qu'il tourne plus régulièrement.
Cette "logique" m'échappe.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
4 janv. 2013 à 09:19
4 janv. 2013 à 09:19
Happy for you, mais comment ???