我试图创建一个匹配文件名$f
中任意数量空格的条件。但我所拥有的似乎与所有东西相匹配?
if [[ $f =~ [[:space:]]* ]]; then
echo found a space
fi
这匹配i-have-no-spaces.jpg
以及i have spaces.jpg
答案 0 :(得分:2)
不要使用*
,这意味着0或更多匹配。
使用
if [[ $f =~ [[:space:]] ]]; then
echo "found a space"
fi
但是在BASH中,我建议不要使用正则表达式,只需将 glob匹配与=
一起使用:
if [[ $f = *[[:space:]]* ]]; then
echo "found a space"
fi