[英]Add certain variables value in between characters in bash
我目前正在編寫一個腳本,該腳本根據我的Java文件中的// TODO注釋在jira中創建問題。 為此,我正在使用JIRA REST API。
這是我的測試腳本,該腳本僅從文件創建一個問題,
#!/bin/bash
file=jira.txt
while IFS='' read -r line || [[ -n "$line" ]]; do
filename=$(tr -d '\n\r' <<< $(cut -d':' -f1 <<< $line))
summary=$(tr -d '\n\r' <<< $(cut -c4- <<< $(cut -d':' -f3 <<< $line)))
echo -e "\033[1mIssue Name\033[0m = $summary"
echo -e "\033[1mDescription\033[0m = $filename"
key="Project-181"
#key=$(curl -u username:password -X POST --data '{
# "fields": {
# "project":
# {
# "key": "project"
# },
# "summary": "'"$summary"'",
# "description": "'"$filename"'",
# "issuetype": {
# "name": "Task"
# }
# }
#}' -H "Content-Type: application/json" http://JIRA-URL/rest/api/2/issue/ | jq '.key')
echo "key=$key"
sed -i "/${summary}/s/$/ ${key}/" $filename
done < "$file"
腳本的輸出是
Issue Name = TODO remove hack for my task
Description = /opt/test/testfile.java
key=project-181
我特意評論了JIRA REST API部分,因為我不想每次運行測試腳本時都產生新問題
注釋的JIRA REST API的輸出與在該“ key =” Project-181 “上方聲明的變量相同。
jira.txt的內容如下,
/opt/test/testfile.java:211: // TODO remove hack for my task
現在,如果我運行此腳本,它將成功運行,但是當我簽入“ testfile.java ”時,我看到了,
// TODO remove hack for my task "Project-181"
我希望這樣的事情發生
// TODO project-181 Remove hack for my task
任何建議都將受到歡迎,謝謝。
給定summary="TODO remove hack for my task"
,如果要在$key
“ TODO”之后插入$key
,請將sed
行更改為:
sed -i "/${summary}/s/TODO \(.*\)/TODO ${key} \1/" $filename
您原來的sed
命令"/${summary}/s/$/ ${key}/"
用空格后面的$key
替換了$
行的末尾,實際上將$key
附加到末尾,而不是在“ TODO”之后插入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.