Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git Bash sed命令替换为命令的输出_Git_Bash_Macos_Shell_Sed - Fatal编程技术网

Git Bash sed命令替换为命令的输出

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 '

我正在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 '*' )

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
。您可以在command
s///
中使用esc字符作为任何字符。我不确定我是否明白您的意思。您是说我的命令需要更改引号,如so
sed-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字符作为任何字符。