IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> bash+socker un script dans une variable, prévénir l'interprétation de caractères
Options
xavman
posté 16 May 2005, 11:03
Message #1


Nouveau Membre


Groupe : Membres
Messages : 19
Inscrit : 7 Mar 2005
Membre no 34 679



Bonjour à tous

voila ma question, est-il possible de stocker un script dans une variable en empechant bash de toute interprétation.

je m'explique :

je suis en train d'écrire un script qui a un moment donné doit générer un script d'initialisation de service.

La première possiblité est tout simplement de le stocker dans un fichier texte, d'en afficher la sortie redirigée :

cat nomdufichier > /.../nomdufichier

mais voila moi ca m'arrange pas, je voudrai que mon script incorpore ce fichier.

donc si je le déclare en variable, bash essaye d'interpréter le contenu et rend impossible l'execution du script.

j'ai relu le guide advenced bash scripting, le double quoting est censé prévénir l'interprétation mais pas sur tous les caractère semble-t-il.

Il ya t-il une manière de prévénir toute interprétation, ou le stockage dans un fichier est-il obligatoire dans le cas ou des caractères particuliers sont inclus.



voila, merci d'avance de vos réponses


Go to the top of the page
 
+Quote Post
xavman
posté 16 May 2005, 11:49
Message #2


Nouveau Membre


Groupe : Membres
Messages : 19
Inscrit : 7 Mar 2005
Membre no 34 679



pas une petite idée.... sniff
Go to the top of the page
 
+Quote Post
p3consulting
posté 16 May 2005, 12:13
Message #3


Macbidouilleur d'argent !
***

Groupe : Membres
Messages : 675
Inscrit : 13 Dec 2003
Membre no 12 468



QUOTE(xavman @ 16 May 2005, 11:03)
Bonjour à tous

voila ma question, est-il possible de stocker un script dans une variable en empechant bash de toute interprétation.

je m'explique :

je suis en train d'écrire un script qui a un moment donné doit générer un script d'initialisation de service.

La première possiblité est tout simplement de le stocker dans un fichier texte, d'en afficher la sortie redirigée :

cat nomdufichier > /.../nomdufichier

mais voila moi ca m'arrange pas, je voudrai que mon script incorpore ce fichier.

donc si je le déclare en variable, bash essaye d'interpréter le contenu et rend impossible l'execution du script.

j'ai relu le guide advenced bash scripting, le double quoting est censé prévénir l'interprétation mais pas sur tous les caractère semble-t-il.

Il ya t-il une manière de prévénir toute interprétation, ou le stockage dans un fichier est-il obligatoire dans le cas ou des caractères particuliers sont inclus.



voila, merci d'avance de vos réponses
[right][snapback]1149443[/snapback][/right]


pas certain d'avoir compris voter question mais essayez toujours ceci:

CODE

#!/bin/sh
v=`cat <<EOF
ls /Applications/
EOF`
echo $v
$v


(faites bien attention où sont mis les backquotes : AVANT "cat" et APRES "EOF")
Go to the top of the page
 
+Quote Post
schlum
posté 16 May 2005, 13:00
Message #4


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 449
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



Faut dire, ta question est assez incompréhensible ... ph34r.gif

Rappel
a = "ch" : chaîne "ch" dans laquelle toutes les séquences d'échappement sont remplacées ($i, $* ...)
a = 'ch' : chaîne "ch" brute
a = `cmd` : chaîne résultant de l'exécution de la commande "cmd"

CODE
14:01:01 [~] schlum$ echo "echo $0"
echo /bin/zsh
14:01:33 [~] schlum$ echo 'echo $0'
echo $0
14:01:39 [~] schlum$ echo `echo $0`
/bin/zsh
14:02:00 [~] schlum$  


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
xavman
posté 16 May 2005, 14:18
Message #5


Nouveau Membre


Groupe : Membres
Messages : 19
Inscrit : 7 Mar 2005
Membre no 34 679



Merci pour vos réponses.

Je suis peut etre pas tres bien expliqué
Ce que je souhaite faire est très simple

Je souhaite assigner à une variable une chaîne de caractère.
cette chaîne de caractère se trouve être un script shell lui même.

donc

FITE_TO_BE_GENERATED="......................"

et ensuite le moment venu, je peux appeler ma variable :

echo "$FILE_TO_BE_GENERATED" > /.../fichier


sauf que

la chaîne de caractère étant un script, mon script plante même sans commande, uniquement avec l'assignement de la valeur de la variable.

Peut-être la solution est-elle dans les EOF, mais j'ai pas bien pigé l'utilisation.


Pour etre encore plus clair sur le fonctionnement du script général, mon script install un soft puis si l'installe réussie va créer un script shell d'initialisation du service.

Je précise que juste rediriger la valeur de la variable vers un fichier et pas executer les commandes qui y sont contenues.


voila, si je suis pas encore asser clair, hésiter pas à me le dire...

merci en tout cas
Go to the top of the page
 
+Quote Post
xavman
posté 16 May 2005, 14:45
Message #6


Nouveau Membre


Groupe : Membres
Messages : 19
Inscrit : 7 Mar 2005
Membre no 34 679



mum, je comprend pas bien

donc je sais maintenant comment faire pour que cela fonctionne, mais je suis pas sur d'avoir bien saisi la chose :

voici un extrait du code fonctionne :


#!/bin/bash

# assignation de la variable

INITD_FILE=`cat <<EOF

#!/bin/bash

....
....
....`


echo "$INITD_FILE" > /etc/initd/fichier


en tout cas, comme ca ca fonctionne....

merci








Go to the top of the page
 
+Quote Post
p3consulting
posté 16 May 2005, 17:31
Message #7


Macbidouilleur d'argent !
***

Groupe : Membres
Messages : 675
Inscrit : 13 Dec 2003
Membre no 12 468



QUOTE(xavman @ 16 May 2005, 14:45)
mum, je comprend pas bien

donc je sais maintenant comment faire pour que cela fonctionne, mais je suis pas sur d'avoir bien saisi la chose :

voici un extrait du code fonctionne :


#!/bin/bash

# assignation de la variable

INITD_FILE=`cat <<EOF

#!/bin/bash

....
....
....`


echo "$INITD_FILE" > /etc/initd/fichier


en tout cas, comme ca ca fonctionne....

merci
[right][snapback]1149796[/snapback][/right]


CODE

cat <<EOF > /etc/initd/fichier
#!/bin/bash
...
EOF


marcherait tout aussi bien,
comprends toujours pas cette volonté d'utiliser une variable…

Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 28th April 2024 - 14:55