Я пытался:
for item in *
do
if [ -d ${item} ]
then
echo "$item"
fi
done
и при чтении имени файла с пробелом выводится ошибка:
line 11: [: too many arguments
решение1
Процитируйте расширение $item
, точно так же, как вы уже делаете с echo
:
for item in *; do
if [ -d "$item" ]; then
echo "$item"
fi
done
Связанный:
- Почему мой скрипт оболочки тормозит пробелы и другие специальные символы?
- Когда необходимо двойное кавычивание?
Обратите внимание, что добавление a /
в конец шаблона приведет к принудительному сопоставлению подкаталогов (есличто-либоМатчи).