变量被附加到我的文本文件

时间:2017-12-01 11:33:11

标签: shell jenkins

我有一个脚本应该从jenkins的JSON API中获取一些数据并解析API以获取一些数据。脚本为3个jenkins实例执行此操作。 jenkins实例存储在文件instance.txt中,该文件具有jenkins实例名称和用于身份验证的api令牌 脚本是

for i in `cat instance.txt`; do
        api=`echo $i | cut -d ":" -f2`
        instance=`echo $i | cut -d ":" -f1`
        echo "start collecting the data"
        echo $instance
        curl -u user:$api -s -k "https://$instance/pluginManager/api/json?depth=1" | jq '.plugins[]|{version,longName}' -c  | sed 's/\"//g' | sed 's/,/:/g' | cut -d ":" -f2,4 | tr -d "{ }" | sed 's/$/:'$instance'/'>> plugins.txt
        done

实例文件是instance.txt

instance1:apitoken1
instance2:apitoken2
instance3:apitoken3

现在的问题是文件被创建并附加了相应的实例,但是有些行也附加了值" $ instance"我不确定为什么会这样 有人可以帮助我吗

我的输出文件看起来类似于

version1:name1:$instance
version2:name2:$instance
.....
versionx:namex:$instance

文本文件中的其余行看起来正确,但我无法弄清楚$ instance附加到文件中的原因。 我尝试打印$ instance变量值,它也不会在任何地方打印空值,它会打印正确的值

1 个答案:

答案 0 :(得分:1)

尝试改变,

sed 's/$/:'$instance'/' 

sed "s/$/:$instance/"