2017-09-14 3 views
0

私が行っている物語枝(Git)のためにJiraチケットを狩りに疲れたので、私はこの小さなスクリプトを作って.bash_profileに入れました。gitブランチを切り替えるときに.bash_profileからbashスクリプトを再ロードする

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

作品罰金、私は枝に切り替えるまで:枝を切り替えた後 git checkout 1234

を、私はojt aliasコマンドを使用し、それは私がにあった前のブランチからのJIRAチケットを開きます。

source ~/.bash_profileをリロードすると動作します。私は全体のプロフィールをリロードしたくありません。

答えて

3

はこれを試してください:あなたは、二重引用符で囲むか、引用符サブシェル($(...))を入れた場合

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

、それはすぐに評価されます(つまり、ソースたびに.bash_profile)。一重引用符で囲んだ場合、それは遅れて評価されます(つまり、別名を呼び出すたびに)。

あなたはすぐに拡大するその他の値を必要としないので、実際には、あなただけの一重引用符で全体を置くことができる必要があります:あなたが混合している場合は拡大し、怠惰なこと

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

お知らせこれを行うには、文字列を異なる引用符で連結する必要があります。あなたがそれらをネストするだけなら、あなたの文字列に余分な引用符文字が得られます。最も外側の一組の引用符は、変数とサブシェルを展開するかどうかを決定するために使われます。

例:トリックをした

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 
+0

!新しいことを教えてくれてありがとう。乾杯。 –

関連する問題