Я согласен с другими ответами относительно правильного способа просмотра файлов. Однако OP спросил:
Приведенный выше код не работает, знаете почему?
Да!
Отличная статья В чем разница между test, [и [[?]] Подробно объясняется, что среди других различий вы не можете использовать expression matching
или pattern matching
внутри test
команды (что является сокращением для [
)
Функция новый тест [[старый тест [Пример
Сопоставление с шаблоном = (или ==) (недоступно) [[$ name = a *]] || echo "имя не начинается с 'a': $ name"
Регулярное выражение = ~ (недоступно) [[$ (date) = ~ ^ Пт \ ... \ 13]] && echo "Сегодня пятница, 13-е!"
соответствие
Вот почему ваш скрипт не работает. Если OP заинтересован в ответе с [[
синтаксисом (недостаток которого заключается в том, что он не поддерживается на таком количестве платформ, как [
команда), я был бы счастлив отредактировать свой ответ, включив его.
РЕДАКТИРОВАТЬ: Любые советы о том, как отформатировать данные в ответе в виде таблицы, были бы полезны!
for i in $(ls *.java); do echo "do something with file $i"; done
?