“// [[:blank:]] /”在这做什么?

时间:2015-03-05 07:53:41

标签: bash sh

在这种情况下,我无法理解shell脚本。请帮忙。

inDumpPort=1
var=${inDumpPort//[[:blank:]]/}

输出仍为1。 为什么(或如何)需要它?

2 个答案:

答案 0 :(得分:2)

[[:blank:]]匹配空格或制表符空间。

它实际上是从$inDumpPort变量中删除所有空格。

这个例子会更清楚:

inDumpPort="   1 "
echo "<$inDumpPort>"
<   1 >

echo "<${inDumpPort//[[:blank:]]/}>"
<1>

答案 1 :(得分:1)

anubhava如何提到,表达式是删除你在方括号中给出的字符类的所有外观。因为你的bash字符类是:blank:,它会删除变量中的空格。

如果你这样做:

inDumpPort="Hello World"
echo "<${inDumpPort//[[:lower:]]/}>"
<H W>

它将从变量inDumpPort中删除所有小写字符。

在这里查看更多Bash角色课程:Bash Character Classes