我已经厌倦了寻找Jira门票,因为我正在制作任何故事分支(Git),所以我制作了这个小脚本并把它放在.bash_profile
中。
alias ojt="open https://mycompanyname.atlassian.net/browse/MARMO-"$(git symbolic-ref HEAD | sed s/[^0-9]*//g)""
在切换分支之前正常工作:
git checkout 1234
切换分支后,我使用ojt
别名命令,它会从上一个分支打开Jira票据。
如果我重新加载source ~/.bash_profile
,它就有效。我不想重新加载整个个人资料。
答案 0 :(得分:3)
试试这个:
alias ojt="open https://mycompanyname.atlassian.net/browse/MARMO-"'$(git symbolic-ref HEAD | sed s/[^0-9]*//g)'
如果您将子shell($(...)
)放在双引号中或没有引号,则会立即对其进行评估(即每当您提供.bash_profile
时)。如果用单引号括起来,它将被懒惰地评估(即每当你调用别名时)。
实际上,由于您不需要立即扩展任何其他值,您应该能够将整个内容放在单引号中:
alias ojt='open https://mycompanyname.atlassian.net/browse/MARMO-$(git symbolic-ref HEAD | sed s/[^0-9]*//g)'
请注意,如果要混合扩展值和延迟值,则必须使用不同的引号连接字符串以使其工作;如果您只是嵌套它们,您将在字符串中获得额外的引号字符,并且最外面的引号集将用于确定是否扩展变量和子shell。
示例:
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