Bash有一个叫做参数扩展的功能,除其他外,它允许根据所谓的**模式进行字符串替换(模式类似于正则表达式,但有根本的区别和限制)。 [flussence'的原话。Bash有正则表达式,但它们被很好地隐藏起来了:]
下面演示了如何从一个变量值中去除***所有的空白(甚至是内部的空白)。
$ var='abc def'
$ echo "$var"
abc def
# Note: flussence's original expression was "${var/ /}", which only replaced the *first* space char., wherever it appeared.
$ echo -n "${var//[[:space:]]/}"
abcdef