2016-02-11 22 views
10

Sto appena iniziando a convertire i miei lavori Jenkins nel nuovo strumento Jenkins Pipeline (flusso di lavoro) e ho difficoltà a ottenere il comando sh per utilizzare una shell di accesso bash.Come posso avviare una shell di login bash nella pipeline di jenkins (precedentemente nota come flusso di lavoro)?

Ho provato

sh ''' 
#!/bin/bash -l 
echo $0 
''' 

ma il comando echo $0 viene sempre eseguito in una shell interattiva, piuttosto che una shell bash di login.

+6

Lei-bang dovrebbe essere nella prima riga dello script: sh '' '#!/Bin/bash -l echo $ 0 ''' – izzekil

+0

@ izzekil ha ragione !!!! UGH. – Jeff

risposta

21

@izzekil è giusto !!!! Grazie mille!

Quindi, per elaborare un po 'su cosa sta succedendo. Ho usato sh con ''', che indica uno script a più righe. TUTTAVIA, lo script di shell risultante che viene scaricato sul nodo jenkins sarà una riga in basso, piuttosto che la prima riga. Così mi è stato in grado di risolvere questo problema con questo

sh '''#!/bin/bash -l 
echo $0 
# more stuff I needed to do, 
# like use rvm, which doesn't work with shell, it needs bash. 
''' 
+0

Dovresti riuscire a sbarazzarti di sh '' '(e termina' ''). – gaoithe

+0

@gaoithe, puoi fornire un esempio di cosa intendi? – Jeff

+0

solo #!/Bin/bash come prima riga nella configurazione del lavoro. Ho cercato di spiegare meglio nella modifica della risposta. – gaoithe

Problemi correlati