从bash变量中删除空格

MCS*_*MCS 8 bash

假设变量包含空格,换行符和制表符后跟一些文本,为什么会这样:

${var#"${var%%[![:space:]]*}"}  # strip var of everything 
                                # but whitespace
                                # then remove what's left 
                                # (i.e. the whitespace) from var
Run Code Online (Sandbox Code Playgroud)

删除空格并保留文本,但是这样:

${var##[:space:]*}  # strip all whitespace from var
Run Code Online (Sandbox Code Playgroud)

才不是?

flo*_*olo 27

如果我设置var=" This is a test ",你的建议都不起作用; 只是领先的东西被删除.为什么不使用替换功能来删除所有出现的空白而不仅仅是第一个:

 ${var//[[:space:]]}
Run Code Online (Sandbox Code Playgroud)