Bash 引用当前路径 (pwd)

Lud*_*rin 5 bash variable-expansion

PWD当当前路径包含空格时,我遇到了一个最烦人的问题,该问题发生在变量上。我的代码看起来有点像这样:

mycommand |sed -E '  
 s|mystuff|replacement| ;  
 s|'$(pwd)'|replacement| ;  
 '
Run Code Online (Sandbox Code Playgroud)

这很好用,除非当前路径包含空格字符。如果是,$(pwd)则扩展为

'我的路径/有空间'
而不仅仅是
mypath/有空间

这会导致 sed 表达式混乱(因为额外的引号):

sed: 1: "s|mypath/with": 未终止的替代模式

我注意到,它不利于扩大PWD这样的:${PWD//\'/}

关于如何解决这个问题的任何想法?

mou*_*iel 6

将单引号替换为双引号,并将引号替换为 pwd 周围的反引号:

mycommand | sed -E "
 s|mystuff|replacement| ;
 s|`pwd`|replacement| ;
"
Run Code Online (Sandbox Code Playgroud)

双引号允许扩展变量和反引号命令。