Bash 参数替换在空格和换行符上失败

问题描述 投票:0回答:1

当我尝试将字符串分成字符时,它在空格和换行符上失败:

str=" random string
"
echo ${str//?/ \'&}
' 'r 'a 'n 'd 'o 'm ' 's 't 'r 'i 'n 'g '

参数替换以某种方式忽略空格和换行符并将它们解释为空,有没有办法让它识别它们?

bash substitution
1个回答
0
投票

这就是扩展后分词。如果引用参数扩展,您将看到所有前导和尾随空格都被保留。

$ str=" random string
"
$ echo ${str//?/ \'&}
' 'r 'a 'n 'd 'o 'm ' 's 't 'r 'i 'n 'g '
$ echo "${str//?/ \'&}"
 '  'r 'a 'n 'd 'o 'm '  's 't 'r 'i 'n 'g '

$
© www.soinside.com 2019 - 2024. All rights reserved.