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//\'/}。
关于如何解决这个问题的任何想法?
将单引号替换为双引号,并将引号替换为 pwd 周围的反引号:
mycommand | sed -E "
s|mystuff|replacement| ;
s|`pwd`|replacement| ;
"
Run Code Online (Sandbox Code Playgroud)
双引号允许扩展变量和反引号命令。
| 归档时间: |
|
| 查看次数: |
3321 次 |
| 最近记录: |