2017-11-22 1 views
2

私はジェンキンスを実行するドッキング用のコンテナを持っています。sh 'エイリアス'がジェンキンスファイルに何も出力していない

Jenkinsfileの中で、私はエイリアスを定義し、このエイリアスを印刷しようとします。

私はジェンキンスコンテナに接続し、手動でそれを試みたが、私が行うことができる午前:

alias foo='bar' 

、その後、私はaliasを実行する場合、私は、エイリアスのリストを見ることができます(私は7つのプリセットの別名を持ち、

:新しいもの)

が、私はJenkinsfileで同じことを実行したときに、私はfooコマンドはここで...

を応答しませんが、私のパイプラインのコードです

#!/bin/groovy 

pipeline { 
agent any 
stages { 
    stage("Use alias command"){ 
    steps { 
     sh 'alias foo="bar"' 
     sh 'foo' 
    } 
    } 
}} 

理由は何ですか?

+0

jenkinsユーザーのエイリアスを定義していない可能性が高いためです。また、 "エイリアス"はシェルのinit(.bash_profileまたは...)の間に設定する必要がある永続的ではないことに注意してください。 –

+0

ビルドのためだけに残っているエイリアスは気になりません。それが私には避けるだろう:if!ファイルにエイリアスが含まれています... –

答えて

3

shコマンドは、それ自身のシェルで実行されます。それは同じエージェント/ワークスペースにありますが、それは新しいシェルなので、環境変数、エイリアスなどは失われます。 sh

#!/bin/groovy 

pipeline { 
agent any 
stages { 
    stage("Use alias command"){ 
    steps { 
     sh ''' 
      alias foo="bar" 
      foo 
     ''' 
    } 
    } 
}} 
+0

okkkkk !!あなたの助けにTx! –

+0

私は別の初心者の質問をここに投稿しました:https://stackoverflow.com/questions/47436614/error-unable-to-open-galaxy-yml-errno-2-no-such-file- or-directory-galaxy –

関連する問題