2012-12-13 4 views
0

J'utilise ceci pour générer des journaux svn pour un utilisateur spécifique:Bash et les variables de substitution

svn log | sed -n '/bob/,/-----$/ p' 

qui fonctionne très bien. Maintenant, je voudrais utiliser un paramètre/variable pour l'utilisateur:

USER="bob" 
svn log | sed -n '/$USER/,/-----$/ p' 

mais il suffit de donner un journal vide. Comment passer un paramètre à la commande ci-dessus?

Répondre

1

Utilisez des guillemets simples:

USER="bob" 
svn log | sed -n '/'$USER'/,/-----$/ p' 
0

essayer:

svn log | sed -n '/ "$ USER" /,/----- $/p'

+0

J'ai essayé et ça n'a pas marché. – u123

2

La bonne façon de le faire est d'utiliser des guillemets doubles afin que la variable bash peut être étendu:

USER="bob" 
svn log | sed -n "/$USER/,/-----$/p" 

L'ajout de guillemets simples pour "insérer" une variable bash (selon la réponse acceptée) n'est pas la meilleure pratique. HTH.

+0

+1 une solution nettoyante. Je pense que ce serait aussi bien d'expliquer pourquoi ce '$' final ne se développe pas, ou quand il pourrait avoir besoin d'être échappé –

Questions connexes