Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/08/2012, à 18:03

R2D2-Ubuntu

[BASH] Ajouter une ligne dans un fichier système

Salut,
Une petite question, je fais des tests d'écriture dans des fichiers système avec la commande suivante (simple écriture) :

sudo echo 'export PATH=$PATH:/usr/local/pgsql/bin/' >> sudo /etc/profile

Lorsque je rentre la commande pas d'erreur tout va bien. Cependant lorsque j'ouvre le fichier, rien n'a été écrit.
Connaissez-vous une autre méthode qui fonctionne pour ajouter une ligne dans un fichier système ?

Merci

Hors ligne

#2 Le 03/08/2012, à 18:09

Einenlum

Re : [BASH] Ajouter une ligne dans un fichier système

Bonjour R2D2-Ubuntu,

J'avoue ne pas bien m'y connaître en Bash. Mais je ne comprends pas le deuxième sudo de ta commande.

pourquoi pas

sudo echo 'export PATH=$PATH:/usr/local/pgsql/bin/' >> /etc/profile

?

(simple question, encore une fois je n'y connais pas grand chose là dedans)

Dernière modification par Einenlum (Le 03/08/2012, à 18:09)

Hors ligne

#3 Le 03/08/2012, à 18:12

toulipe

Re : [BASH] Ajouter une ligne dans un fichier système

Le deuxième sudo est en effet inapproprié. Par ailleurs, on ne peut pas se contenter de faire un "sudo echo", il faut utiliser quelque subterfuge. Voyez ici

Hors ligne

#4 Le 03/08/2012, à 18:21

R2D2-Ubuntu

Re : [BASH] Ajouter une ligne dans un fichier système

Merci des réponses, le deuxième sudo était une erreur de copier-coller smile Désolé.

J'ai regardé le lien :

Problème, ma commande interprète mon $PATH alors que j'aimerais que cette variable ne soit pas interprétée je m'explique :

Concrètement dans mon fichier après avoir exécuté la commande j'ai :

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/pgsql/bin/

Or j'aurais aimé avoir :
export PATH=$PATH:/usr/local/pgsql/bin/

Est-ce possible ? Gênant ?

Merci

Dernière modification par R2D2-Ubuntu (Le 03/08/2012, à 18:30)

Hors ligne

#5 Le 03/08/2012, à 18:50

pode

Re : [BASH] Ajouter une ligne dans un fichier système

Parmi les syntaxes proposées dane le lien, celle-ci fait ce que tu attends :

$ echo 'ligne $PATH' | sudo tee -a /root/toto
ligne $PATH
$ sudo cat /root/toto

Hors ligne

#6 Le 03/08/2012, à 22:34

Amarokk

Re : [BASH] Ajouter une ligne dans un fichier système

R2D2, ceci est totalement normal. Si tu fais un "echo $PATH", tu verras bien qu'il s'affichera "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin". Du coup, il est logiquement qu'avec ton export, la variable $PATH soit remplacée par sa valeur, concaténée avec /usr/local/pgsql/bin/


Ubuntuboy since 2007

Hors ligne

#7 Le 03/08/2012, à 23:21

R2D2-Ubuntu

Re : [BASH] Ajouter une ligne dans un fichier système

Amarokk a écrit :

R2D2, ceci est totalement normal. Si tu fais un "echo $PATH", tu verras bien qu'il s'affichera "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin". Du coup, il est logiquement qu'avec ton export, la variable $PATH soit remplacée par sa valeur, concaténée avec /usr/local/pgsql/bin/

Merci de ta répone, mais je savais le pourquoi du comment.
Le problème est que e n'arrivais pas à faire autrement, maintenant c'est fait et ça marche.

Merci à tous de m'avoir aidé.

Hors ligne