Linux — это не только Bash или Zsh. Тут есть целый зоопарк оболочек: Login, Non-Login, Interactive, Restricted и ещё пара странных экземпляров. Разберёмся, что к чему.
В Bash нет переменной OFS для выходного разделителя полей, но с помощью переменной $* и настройки IFS можно управлять разделителями и генерировать CSV.
Введение, лицензия, знакомство.
Разбираем магическую штуку !#:3, как зачем и почему.