shell script

05/05-2007 à 12:59bonjour,

je voulais savoir les syntaxe possible en shellscript (ou bash ...) genre si c'est possible de faire a la sql des conditions genre cp $D WHERE $I=0 ou un truc dans le genre.

en fait je récupere un champ (txt+ chiffre) en php et je veux l'importer dans un script qui va faire pas mal de chose et hop me mettre ce champ ($toto par ex) dans un fichier ou j'aurais genre du txt comme ca
232FDSFSFSD $robert fdfksdfsd
fsdlfjsdlf $robert fsdfsd

et qui me remplace $robert par $toto recuperé depuis mon php...

(en fait c'est pour créer un sous domaine sur un DNS avec tinydns et c'est putain de fichier zone!!!!) voila merci :D


05/05-2007 à 14:49Bonjour,

En fait, si j'ai bien compris, tu veux comparer $D seulement si $i = 0 ?
Pour moi, le plus simple est de faire :

#!/bin/bash

...

if [$i -eq 0] then
#comparer $D
fi

Mais je n'ai peut-être pas compris ton problème ?
Et je n'ai pas pu tester, je n'ai pas linux sous la main ...


----------
image


shell script
06/05-2007 à 16:02nope en fait j'ai un fichier avec du txt et une variable dedans . cette variable m'est donné par un utilisateur qui veut crée un sous domaine (mon histoire de dns) donc il me donne sa variable ($domaine par ex) en php et je voudrai que le $domaine je puisse le mettre dans mon fichier partout ou j'en ai besoin. je vais regarder ca ce soir mais je trouve pas grand choses sur les script en fait c'est pour ca. si tu connais un bon site ou un tuto bien fait ...
merci

06/05-2007 à 16:58OK donc si je comprends bien, tu reçois en php une chaine de caractère (le nom du sous-domaine par exemple), tu veux ensuite le mettre dans un fichier texte.
Ensuite, tu lances un script bash qui récupère le nom du sous-domaine et fait des trucs, c'est ca ?

Pour lancer un script bash en php (j'ai jamais fait), il semble que tu peux trouver la solution ici :
http://www.commentcamarche.net/forum/affich-1562432-php-execution-d-un-fichier-bash

Si je suis encore à côté de la plaque [;)] , dis moi exactement ce que tu entends par :

dans mon fichier partout ou j'en ai besoin



Désolé mais je vois pas vraiment le rapport entre $robert, $toto et la comparaison avec un where ..


----------
image


09/05-2007 à 01:27bah oui c'est a peu pres ca.
j'ai une page php avec un champ a remplir. $champ
cette variable je la mes dans un fichier ou j'en ai besoin. (plusieur fois a different endroits precis)
et donc j'aimerai automatiser ca :D bref je le fais cette nuit demain et mes ma soluce ici si ok.
merci en tout cas et le lien ma bien aidé :D merki

shell script
09/05-2007 à 14:20OK, je suis preneur de ta solution [;)]
Bon courage !


----------
image


09/05-2007 à 19:44donc en fait la j'en suis a verifier si le domaine existe ou pas (dc tt bete avec un grep du fichier zone) aprés on peu passer une variable direct du php o shell en fait ya la commande exec () (avec d'autre hein!) qui permet de lancer un script a une action et de lui passer un parametre de la page php. trés bien ca :D je finit ca demain normalement :D
voiloi

11/05-2007 à 04:08ok, bon courage.


----------
image


shell script
12/05-2007 à 00:36dc en fait pour ecrire ds le fichier une fois la variable recuperé fo foutre vla les echo avec une double redirection ( >> ) vers le fichier destinataire (la >> permet d'ecrire a la suite ds le fichier indiqué) c'est pour esquiver les commande bien longue et relou a interpreter. voila!
je mes le script finit bientot!

15/05-2007 à 14:29c bon je mes mes scripts ce soir :D

15/05-2007 à 18:43Thks [;)]


----------
image


shell script
17/05-2007 à 15:33if [ -e /etc/tinydns/zones/zone.$1 ]; then
echo "$1.geekhost.itinet.fr already exists" > /root/scripts/test_domain.txt
else
#lancement du script create_zone
sudo /root/scripts/create_zone.bash $1

echo "$1.geekhost.itinet.fr a ete creer" > /root/scripts/test_domain.txt
fi;

$1 = variable php
1er ligne verif l'existence du fichier zone.$1
si true : ecrit ds le fichier test-domain.txt
sinon
lance un autre script pour créer la zone

17/05-2007 à 15:35domaine=$1
#Creation du fichier zone de l'utilisateur

touch /etc/tinydns/zones/zone.$domaine

#la en fait on fai tune liste d'echo avec double redirection vers le fichier désiré >> ce qui rajoute le echo a la #suite du fichier.
#exemple :
echo "@$domaine.geekhost.itinet.fr::mx10.geekhost.itinet.fr.:10" >> /etc/tinydns/zones/zone.$domaine

#Lancement du script permettant de copier les fichiers zones dans data et de les envoyer sur le DNS
sudo /root/scripts/copy_zone.bash

oui parcque je suis deriere un serveur en fait :D mais sinon pour soit on peut s'arreter la. voila :D

si tu veux le code php pas de souci.

21/05-2007 à 19:44Merci,
C'est toujours mieux de partager sa solution (quand on la trouve !).
Tu peux me dire comment tu appelles en php le script bash et comment tu lui transmets une valeur ?


----------
image


shell script
22/05-2007 à 01:34trés simple :D

fonction exec() :D a voir sur php.net pour les details.

tu peux faire plusieur chose soit directment une commande genre $result = exec( cat /root/toto/bonjour.txt );
ou alors
$command = "cat /root/toto/bonjour.txt";
$result = xec($command);

de meme pour passer un parametre
genre
$nom = $_POST("nom");
$result = exec ( touch /root/toto/$nom);

tu peux aussi passé plusieur parametre genre
$nom = $_POST("nom");
$command = "touch /root/toto/$nom";
$result = exec ($command $nom);

je te mes la syntaxe exacte demain :D voilou


22/05-2007 à 21:16Merci !


----------
image


Le post anonyme est désactivé.
Merci de vous identifier

« Forum technique (liste des messages)16 enregistrements / page 1/1

À la Une de MemoClic

Le saviez vous ? Vous pouvez installer cette bannière ↑ gratuitement sur votre site !