POSIXly (até mesmo Bournely):
set -- somedir-[*] somedir-*
case $#-$1-$2 in
'2-somedir-[*]-somedir-*') echo 0 match;;
2-*) echo 1 match;;
*) echo more than one match;;
esac
O somedir-[*]
somedir-*
é para desambiguar os casos em que:
- Não há correspondência (a expansão seria
somedir-[*]
somedir-*
) - Existe uma correspondência, mas é um literal
somedir-*
(a expansão seriasomedir-*
somedir-*
.
Com bash
, você pode fazer:
(shopt -s nullglob
set -- somedir-*
[ "$#" -eq 1 ])
ksh93
, zsh
, yash
tem um recurso semelhante (o recurso vem de zsh
), mas com uma sintaxe diferente.