2016-07-07 60 views
2

我有一個執行shell在詹金斯:詹金斯環境變量的sed

export MYVAR 
MYVAR=echo $JiraReleaseNotes | sed 's/\[/<br>\[/g' 
echo MYVAR=$MYVAR >> ./AndroidStable/App/config.properties 

我試圖做的是在$JiraReleaseNotes爲「[br>」全部替換「[」值,並將其設置爲MYVAR,然後複製內容爲config.properties文件。

但我得到的第二行錯誤:

Relase: command not found 

Relase$JiraReleaseNotes的第一個字,所以它認爲它是一個命令?

+2

如果你想執行一個命令,你需要使用'var = $(command)''。目前你正在說'MYVAR = echo Relase ...',所以這個試圖在變量'MYVAR'設置爲'echo'後執行'Relase'命令。請參閱[Bash腳本變量聲明 - 命令未找到](http://stackoverflow.com/a/2268117/1983854)對此的一個很好的描述。 – fedorqui

+0

[Bash腳本變量聲明 - 命令未找到]的可能重複(http://stackoverflow.com/questions/2268104/bash-script-variable-declaration-command-not-found) – BitwiseMan

回答

0

說明:

您需要括號第一前它可以被分配給一個變量中執行所需的命令echo $JiraReleaseNotes | sed 's/\[/<br>\[/g'。通過Fedorqui較早評價如上所述,它看起來像這樣

MYVAR=$(results_of_this_command) 
在這種情況下 results_of_this_commandecho $JiraReleaseNotes | sed 's/\[/<br>\[/g'將首先執行

,它然後被分配的結果是MYVAR可變

代碼:

MYVAR=$(echo $JiraReleaseNotes | sed 's/\[/<br>\[/g') 
echo "MYVAR=$MYVAR" >> ./AndroidStable/App/config.properties