我有一个脚本应该从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变量值,它也不会在任何地方打印空值,它会打印正确的值
答案 0 :(得分:1)
尝试改变,
sed 's/$/:'$instance'/'
到
sed "s/$/:$instance/"