Git Bash sed命令替换为命令的输出
我正在mac上编写我的第一个bash脚本之一。我的目标是读取git分支的名称,将其保存到终端变量Git Bash sed命令替换为命令的输出,git,bash,macos,shell,sed,Git,Bash,Macos,Shell,Sed,我正在mac上编写我的第一个bash脚本之一。我的目标是读取git分支的名称,将其保存到终端变量PR\u TITLE中,然后使用sed-i将占位符pull\u request\u name替换为变量$PR\u TITLE 下面是我正在运行的终端命令。设置变量工作正常,但我无法用变量替换占位符。当前,当我运行sed命令时,bash会输出以下内容-bash:feature/issues-5-6:没有这样的文件或目录 PR_TITLE=$( git branch | grep \* | tr -d '
PR\u TITLE
中,然后使用sed-i
将占位符pull\u request\u name
替换为变量$PR\u TITLE
下面是我正在运行的终端命令。设置变量工作正常,但我无法用变量替换占位符。当前,当我运行sed命令时,bash会输出以下内容<代码>-bash:feature/issues-5-6:没有这样的文件或目录
PR_TITLE=$( git branch | grep \* | tr -d '*' )
sed -i '' "s/\pull_request_name/$($PR_TITLE)/" /Users/$USER/Desktop/PR_File.txt
您可以在内部使用quote
“
bash命令替换命令$(command)
。要避免这种情况,您需要先引用$
sed -i '' "s/\pull_request_name/\$($PR_TITLE)/" /Users/$USER/Desktop/PR_File.txt
您可以使用内部引号
“
bash命令替换命令$(命令)
。要避免这种情况,您需要先引用$
sed -i '' "s/\pull_request_name/\$($PR_TITLE)/" /Users/$USER/Desktop/PR_File.txt
我不确定我是否明白你的意思。您是说我的命令需要更改引号,如so
sed-i''s/\pull\u request\u name/“$($PR\u TITLE)”/“/Users/$USER/Desktop/PR\u File.txt
您发布的命令给出了一个替换错误sed:1:“s/\pull\u request\u name/$(…”:替换命令中的错误标志:“i”
可能是我弄错了。试试sed-i''“s/\pull\u request\u name/$PR\u TITLE/”/Users/$USER/Desktop/PR\u File.txt
并检查它是否符合您的需要。您的解决方案有效。我发现了问题。变量$PR\u TITLE
值是feature/issues-5-6我需要找出如何转义正斜杠,以便它将ti写入文件。好的。试试这个sed-I'”s@\pull\u request\u name@$PR\u TITLE@/Users/$USER/Desktop/PR\u File.txt
。您可以在commands///
中使用esc字符作为任何字符。我不确定我是否明白您的意思。您是说我的命令需要更改引号,如sosed-I''s/\pull\u request\u name/“$($PR TITLE)”/“/Users/$USER/Desktop/PR_File.txt
您发布的命令给出了一个替换错误sed:1:“s/\pull_request_name/$(…”:替换命令中的错误标志:'i'
可能是我弄错了。请尝试sed-i''”s/\pull_request_name/$PR TITLE/”/Users/$USER/Desktop/PR_File.txt
并检查它是否符合您的需要。您的解决方案有效。我发现了问题。变量$PR_TITLE
值是feature/issues-5-6,我需要找出如何转义正斜杠,以便它将ti写入文件。好的。请尝试此sed-I''“s\pull_request_name@$PR TITLE”/Users/$USER/Desktop/PR_File.txt
。您可以在命令s//
中使用esc字符作为任何字符。