Tentei:
for item in *
do
if [ -d ${item} ]
then
echo "$item"
fi
done
e quando um nome de arquivo com espaço é lido, ele imprime um erro:
line 11: [: too many arguments
Responder1
Cite a expansão de $item
, assim como você já está fazendo com echo
:
for item in *; do
if [ -d "$item" ]; then
echo "$item"
fi
done
Relacionado:
- Por que meu script de shell engasga com espaços em branco ou outros caracteres especiais?
- Quando as aspas duplas são necessárias?
Observe também que adicionar a /
ao final do padrão forçará a correspondência de subdiretórios (sequalquer coisapartidas).