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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 var=~/monRep echo $var
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
après exécution (copie de l'affichage avec -x):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #! /bin/bash -x pathVar="~/monDir" pathVar2="~/monDir" racine="/home/`whoami`" pathVar=`echo "$pathVar" | sed 's/~/\/home\/userName/'` pathVar2=`echo "$pathVar2" | sed 's/~/$racine/'`
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,
Partager