Столкнулся со странностью недавно. Везде в интернетах пишут, что функцию в bash можно объявить разными способами, в том числе при помощи ключевого слова function перед названием функции. Именно такой способ мне больше всего нравится, и я решил им воспользоваться. Однако, не сработало.
Долго рылся в гугле, где-то видел пометку, что якобы function работает не во всех средах и т.п. Но это звучит как-то странно. Неужели в Ubuntu какая-то особая среда и т.п. Это ведь обычный дистрибутив Linux, один из самых популярных. Чего там может быть «особого»?
Например,
filetype_is1 () {
echo $(file "$a" | cut -d ":" -f 2 | cut -d " " -f 2)
}
— сработало замечательно.
А вот так,
function filetype_is1 {
....
}
— вызвало ошибку (ссылка на неправильно поставленные скобки, что-то такое …).
Вопрос: у всех так? Почему первый способ работает, а второй - нет? Может подскажете ресурс, где хорошо объясняется эта тема? Перелопатил разных сайтов (англоязычных, естественно) штук 7-8. Вроде всё понятно объясняется, но не работает. Может действительно в bash это ключевое слово уже не используется, или что?