Длина агрумента в баш-функции

October 10, 2016

Еще один забавный момент из мира баш-программирования. Экспериментировал я тут с эластиком и передавал полученный JSON на пост-обработку в функцию, примерно так:

function process {
  echo $1 | jq "..."
}

out=`curl ...`
process out

Начиная с некоторого значения JSON стал приходить неполный и jq соответственно не мог его распарсить. Оказывается есть ограничение, нашел как обычно на stackoverflow:

$ getconf ARG_MAX    # Get argument limit in bytes
# => 262144

Так что не нужно передавать агрументы длиннее 260 килобайт :scream_cat:.