Pages : 1
#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 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
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
Pages : 1