script bash

Le
Tahar BEN ACHOUR
Bonjour à tous, Une petite question en bash, Je voudrais savoi=
r comment faire pour échapper les ' ' afin que ma variable soit prise =
en compte, voici mon script, en fait c'est par rapport à la com=
mande sed while read line do domain=`echo $line | awk -F/ '{=
print($3".log")}'` echo $domain sed -i '/apache2/d' $line sed -i =
'1iLogFile /srv/logs/$domain' $line done<myfile ici=
je n'ai pas su comment echapper la quote pour que $domain soit prise en =
compte dans sed -i 1iLogFile /srv/logs/$domain' $line Me=
rci pour votre aide

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/658103.25938.qm@web26306.mail.ukl.yahoo.com
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Tahar BEN ACHOUR
Le #22336471
Je fais ca en mettant ma variable entre double quote :

sed -i '1iLogFile /srv/logs/"$domain"' $line




Merci pour t on aide, mais ça ne marche pas ainsi j'obtiens "$domain" comme
résul tat




Attention, mes commandes sed sont souvent elles a ussi entre double quote (sed
"commande" fichier), je ne sais pas si ce la influe ou non.

Fred





merci





--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
MARTY
Le #22336501
Tahar BEN ACHOUR wrote:
Bonjour à tous,



Bonjour,
Une petite question en bash,

Je voudrais savoir comment faire pour échapper les ' ' afin que ma variable soit
prise en compte,




[..]
sed -i '1iLogFile /srv/logs/$domain' $line

ici je n'ai pas su comment echapper la quote pour que $domain soit prise en
compte dans sed -i 1iLogFile /srv/logs/$domain' $line



Je fais ca en mettant ma variable entre double quote :

sed -i '1iLogFile /srv/logs/"$domain"' $line


Attention, mes commandes sed sont souvent elles aussi entre double quote
(sed "commande" fichier), je ne sais pas si cela influe ou non.

Fred

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Tahar BEN ACHOUR
Le #22336561
Merci beaucoup avec guillemets ça marche, je pensais pas qu'on pouvait remplacer
les quotes par des guillemets


Merci beaucoup pour vot re aide


De : FERRINO Maxime À : debian-use
Envoyé le : Mer 7 juillet 2010, 18h 50min 26 s
Objet : Re: script bash


Bonjour.

Au lieu d'utiliser des apostrophes('), on peux utiliser des guillemets (").
Par exemple :
sed -i "1iLogFile /srv/logs/$domain" $line
Juxtaposer les ap ostrophes/guillemets marche aussi :
sed -i '1iLogFile /srv/logs/ '"$domain" $line
Tout ce qui est mis entre apostrophe est toujours pris littéralement, et il
n'est pas possible d'échapper quoi que ce soit.
La preuve en est que : echo ''
affiche bien un antislash.


Maxime.

Tahar BEN ACHOUR a écrit :
Bonjour à tous,

Une petite question en bash,

Je voudrais savoir comment faire pour échapper les ' ' afin que ma variable soit


prise en compte,


voici mon script, en fait c'est par rapport à la commande sed

while read line
do

domain=`echo $line | awk -F/ '{print($3".log")}'`
echo $domain

sed -i '/apache2/ d' $line
sed -i '1iLogFile /srv/logs/$domain' $line


done<myfile


ici je n'ai pas su comment echapper la quote pour que $domain soit prise en
compte dans sed -i 1iLogFile / srv/logs/$domain' $line


Merci pour votre aide













--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
MARTY
Le #22336571
Tahar BEN ACHOUR wrote:



Je fais ca en mettant ma variable entre double quote :

sed -i '1iLogFile /srv/logs/"$domain"' $line





Merci pour ton aide, mais ça ne marche pas ainsi j'obtiens "$domain" comme
résultat



Et en mettant des double quote partout :

sed -i "1iLogFile /srv/logs/"$domain"" $line


?

Fred



Attention, mes commandes sed sont souvent elles aussi entre double quote (sed
"commande" fichier), je ne sais pas si cela influe ou non.

Fred






merci









--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Publicité
Poster une réponse
Anonyme