Recarga la secuencia de commands bash desde .bash_profile al cambiar las twigs de git

Me cansé de search boletos de Jira para la twig de historia (Git) en la que estoy, así que hice este pequeño guión y lo puse en mi .bash_profile .

alias ojt="open https://mycompanyname.atlassian.net/browse/MARMO-"$(git symbolic-ref HEAD | sed s/[^0-9]*//g)""

Funciona bien hasta que cambie de twig: git checkout 1234

Después de cambiar de twigs y uso el command ojt alias, abre el ticket Jira de la twig anterior en la que estaba .

Si vuelvo a cargar source ~/.bash_profile , funciona. No quiero volver a cargar todo el perfil.

Prueba esto:

 alias ojt="open https://mycompanyname.atlassian.net/browse/MARMO-"'$(git symbolic-ref HEAD | sed s/[^0-9]*//g)' 

Si coloca la subshell ( $(...) ) entre comillas dobles o sin comillas circundantes, se evaluará inmediatamente (es decir, cada vez que .bash_profile su .bash_profile ). Si lo incluye en comillas simples, se evaluará de forma perezosa (es decir, cada vez que llame al alias).

En realidad, dado que no necesita que se expandan otros valores inmediatamente, debería poder poner todo en comillas simples:

 alias ojt='open https://mycompanyname.atlassian.net/browse/MARMO-$(git symbolic-ref HEAD | sed s/[^0-9]*//g)' 

Tenga en count que si está mezclando valores expandidos y perezosos, debe concatenar las cadenas con diferentes comillas para que esto funcione; si solo los anida, obtendrá caracteres de comillas adicionales en su cadena, y el set externo de comillas se usará para determinar si desea expandir variables y subcapas o no.

Ejemplo:

 VAR=abc echo "$VAR $VAR" # abc abc echo '$VAR $VAR' # $VAR $VAR echo "$VAR '$VAR'" # abc 'abc' echo '$VAR "$VAR"' # $VAR "$VAR" echo "$VAR "'$VAR' # abc $VAR