是否有可靠的、可移植的(即在大多数系统上适用于 /bin/bash)构造来测试参数是否仅包含空格?
有没有办法只使用 shell 内置函数(即不调用 sed、perl 等)
是的,纯粹的 bash 方式:
s=" "
[[ "$s" =~ ^[[:blank:]]+$ ]] && echo "containes only spaces"
或者
[[ "$s" =~ ^[[:space:]]+$ ]] && echo "containes only spaces"
如果你想检查是否只有一个空格,你可以这样做:
$ d=" "
$ [ "$d" == " " ] && echo "only space"
only space
$ d=" " <--- two spaces
$ [ "$d" == " " ] && echo "only space"
$