Я вот смотрю на убогость шелловых языков. Что sh/bash, что виндовый bat. У них нет вменяемой обработки ошибок по дефолту, эти скрипты несамостоятельны. bash/sh пытаются казаться таковыми, ведь в них есть функции, но вся эта псевдосерьёзность сходит на нет при подобных примерах:
foo = 'test test1 test2'
echo $foo
# test test1 test2
echo "$foo"
# test test1 test2
«НАДА БЫЛА УЧИТЬ ШЕЛЛ, ИТА ЖИ РАЗНЫЕ ВЕЩИ!!111». Но почему, если взять другую скриптуху (вроде питона), то таких приколов с выводом текста в ней нет?
Это всего лишь клей для внешних программ. Но даже с этим шелл-портянки справляются плохо. Без дополнительного пердолинга, в случае ошибки в одной строке, скрипт всё равно выполнится.
Об отсутствии нормальных итераторов и массивов и говорить не приходится. «Зойчем нам массивы и итераторы, это же оверхед!!!11». А толку от такой скриптухи тогда?
«Но ведь оно везде, уже много лет, совместимость, пиши шелл-портянки, сидр».
Собственно, основной вопрос сводится к этому: почему нельзя было заменить убогие портянки на что-то вменяемое уже «много лет» назад, чтобы не было этого «оно везде»? Я хочу хотя бы нормальное форматирование строки. Я что, многого прошу?