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

what does "//[[:blank:]]/" do here?

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

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

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

[[:blank:]] 匹配 space 或制表符 space。

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

这个例子会更清楚:

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

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

anubhava 已经提到过,该表达式正在删除您在方括号中给出的字符 class 的所有外观。因为您的 bash 字符 class 是 :blank:,它会删除变量中的空格。

如果你这样做:

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

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

在此处查找更多 Bash 字符 classes: Bash Character Classes