2017-07-24 250 views
0

我正在使用Mac上的第一个bash脚本之一。我的目标是读取我的git分支的名称,将其保存到终端变量PR_TITLE中,然后使用sed -i最终用变量$PR_TITLE替换占位符pull_request_nameBash sed命令替换为命令的输出

下面是我正在运行的终端命令。设置变量工作正常,但我无法用变量替换占位符。当我运行我的sed命令时,目前bash输出以下内容。 -bash: feature/issues-5-6: No such file or directory

PR_TITLE=$(git branch | grep \* | tr -d '*') 

sed -i '' "s/\pull_request_name/$($PR_TITLE)/" /Users/$USER/Desktop/PR_File.txt 

回答

2

您使用引号" bash命令替换命令$(command)内。为避免这种情况,您需要先引用$

sed -i '' "s/\pull_request_name/\$($PR_TITLE)/" /Users/$USER/Desktop/PR_File.txt 
+0

我不知道我关注你。你是说我的命令需要改变引号,如'sed -i'''s/\ pull_request_name /“$($ PR_TITLE)”/“/ Users/$ USER/Desktop/PR_File.txt” – VirtualProdigy

+0

命令你发布了一个替代错误'sed:1:“s/\ pull_request_name/$(...”:坏标志在替换命令中:'i'' – VirtualProdigy

+0

可能是我错了,试试'sed -i''“s/\ pull_request_name/$ PR_TITLE /“/用户/ $ USER /桌面/ PR_File.txt'并检查是否需要你的解决方案 – komar