2016-07-07 100 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