CodingStyle/Shell
Сначала следует уточнить, что речь пойдёт о программировании на языке shell. Отличие в некоторых расширениях языка, доступных только в bash, которые лучше использовать только осознанно.
Будьте внимательны к деталям. В языке важно всё: знаки препинания, пробелы, отступы. Смотрите внимательно на примеры и не пропускайте пробелы где попало.
Большим отличием от других языков является использование статуса возврата (числа в диапазоне 0..255). Причём 0 означает true, а остальные значения — false.
Важно понимать, что «[» — это ссылка на команду test (см. man test). После if можно писать любую команду. Но важно вокруг знаков «[]» ставить пробелы.
Всегда используйте переменную, обрамляя её кавычками. Иначе при появлении в ней пробела можно получить что-то непредсказуемое.
При разработке используйте типовые конструкции shell.