Bonjour, j’essai en vain de trouver pourquoi ma variable ne se transmet pas
la table en question ne se charge pas si j’enléve .$_POST[‘table’] a fin du bash, le script fonctionne.
Bonjour,
il y a bien un espace. Et oui j’ai espéré que ca fonctionne.
mais malheureusement j’ai pas trouvé grand chose sur le net pour m’aider. c’est juste un probleme de syntaxe ?
Ta 1ère ligne, ça fait un “echo” d’une assignation, pour moi ça renvoit «true»: “oui, j’ai bien réussi à faire l’assignation”.
Donc était-ce vraiment le but de ton [mono]echo[/mono], je suis pas sûr.
Ensuite, tu t’es peut-être un peu perdu en mélangeant les langages, mais l’éxécution de:
… en shell, je crois que ça marchera pas.
Tu ne peux pas passer tes arguments après avoir fait une redirection de flux.
Bon tu as posté entre temps…
Ben là c’est pareil, tu multiplies les [mono]"[/mono] dans une même ligne, et à tous les coups les blocs sont mal découpés.
J’utilise Jedit, faut que je regarde si y a pas quelques choses pour du bash
Pour une variable ca marche, maintenant.
c’est pour deux que ca pose probleme. il mefaut juste la syntaxe pour y arriver.
la ligne avec les deux est envoyée vers le script sh, mais mysqldump ne charge que l’entete de la base sans contenu. c’est donc les variable qui ne sont pas bien transmise dans ce cas.
Dans plein de langages, une assignation renvoie une référence vers la variable qui vient de recevoir la valeur, afin de pouvoir chaîner les assignations : [mono]x = y = z = 3[/mono] équivaut à [mono]z = 3 ; y = z ; x = y[/mono] ou, de manière plus générale : [mono]op(x = 3)[/mono] équivaut à [mono]x = 3 ; op(x)[/mono]
Le comportement de PHP n’est pas différent, le [mono]echo[/mono] affiche bien [mono]agenda[/mono] après avoir fait l’assignation dans la variable.
Si : [mono]echo >&2 « sortie d’erreur standard »[/mono] ou même [mono]>&2 echo « sortie d’erreur standard »[/mono]
[quote=« casimir »]base=$1
table=$1
ssh -Co CompressionLevel=9 -p 2223 root@monserveur.fr "mysqldump -uLOGIN -pPASS $base $table" > /home/justclo/backup041118.sql[/quote]
Ici, [mono]base[/mono] et [mono]table[/mono] prennent toutes les deux la valeur du premier argument passé à ton script. Ce n’est certainement pas ce que tu veux…
exec("sudo /home/justclo/public_html/facturier2/SH/sauvgardesSQL.sh ".$table." ".$base."" );#!/bin/sh
table="$1" # premier argument
base="$2" # deuxième argument
...
N’oublie pas qu’en shell, les arguments ne sont pas des variables nommées mais des variables correspondant à la position des arguments sur la ligne de commandes.