|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2010 Messages : 18 ![]() |
Bonjour,
En bash, 1) J'aimerai comprendre précisément la différence entre ~ et /home/userName Si on fait le ~ est remplacé par /home/userName Si quelqu'un a une explication ou un lien sur une ? 2) Cette différence résulte sur le problème concret suivant : Je tente d'écrire un script qui lit dans un fichier un chemin puis utilise ce chemin. C'est dans un sous-shell et le ~ fait que le chemin n'est pas reconnu. Il l'est si c'est /home/userName. Je n'arrive pas à substituer dans une variable une partie de chaine par une variable. Ceci avec sed car je ne connais pas awk Code :
pathVar=/home/userName/monDir pathVar2='$racine/monDir' Je comprends que $racine n'est pas substituer car entre '' mais je ne sais pas comment procéder. Merci pour votre aide, |
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
Bonjour,
pas besoin de sed pour ça avec bash : Code :
|
||
|
|
20
|
|
|
#3 |
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 445 ![]() |
Si tu fais pathVar2=$(echo "$pathVar2" | sed "s/~/$racine/"), ça devrait fonctionner...
Pour convertir un chemin quel qu'il soit (relatif? abrégé, ...) en chemin absolu :
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur ![]() |
|
|
20
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2010 Messages : 18 ![]() |
Merci à tous les deux.
al1_24, ta solution ne fonctionne malheureusement pas, elle me semblait naturelle à moi aussi, est resulte en : sed: -e expression n°1, caractère 6: option inconnue pour `s' N_BaH, ca fonctionne Néanmoins, mes référence livresque date un peu semble-t-il et je ne connais pas cette syntaxe. Apparemment les // font le même office que pour sed, mais qu'en est-il du # devant le ~ ? As-tu une référence qui détaille cela ? Pour le 1) ma question était pour être plus précis, pourquoi la correspondance avec /home/userName est perdu dans un sous-shell ? Bref de comprendre le mécanisme de substitution du ~ en /home/userName. |
|
|
10
|
|
|
#5 | |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 070 ![]() |
puisque ~ est lu d'un fichier, il n'est pas interprété; c'est normal.
de plus, ~ n'est pas non plus remplacé s'il est entre guillemets. Citation:
DÉVELOPPEMENTS Remplacement des paramètres ${paramètre/motif/chaîne} |
|
|
|
30
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2010 Messages : 18 ![]() |
Merci. Tout est clair maintenant !
Il est vrai que je connais peu les spécificités du bash par rapport au Bourne. Mais avec tes explications, je progresse et sait où chercher ! |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com