我正在查看我的机器上的一些旧脚本,我看到了这个if
表达式,但我不知道它在做什么。有人可以解释一下吗?
if ! [[ "${count// /}" =~ ^[0-9]+$ ]]
then
echo 1
else
echo $count
fi
的值count
有时是字符串,有时是整数。
答案1
让我们将其分解为各个组件
- 该语法
"${count// /}"
是参数扩展语法,用空字符串替换变量内容中的所有空格。例如2 1
变得只是21
- 该部分
=~ ^[0-9]+$
运行bash
正则表达式操作,将左侧的字符串与一组数字进行匹配仅有的。 - 该部分否定整个操作,这意味着仅当
! [[..]]
的内容为时条件才成立count
不是一串数字。 - 如果
if
您echo
输出 的数值,1
并且失败时if
,它会返回 的实际值,count
而不会在 1) 中删除空格。