bash+socker un script dans une variable, prévénir l'interprétation de caractères |
Bienvenue invité ( Connexion | Inscription )
bash+socker un script dans une variable, prévénir l'interprétation de caractères |
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 |
|
|
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
|
|
|
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") |
|
|
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 ...
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
|
|
|
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 |
|
|
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 |
|
|
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 |
|
|
Nous sommes le : 28th April 2024 - 14:55 |