скрипт bash выдает ошибку - список аргументов слишком длинный - PullRequest
0 голосов
/ 20 октября 2018

Я написал скрипт bash, а ниже приведен пример фрагмента, который выдает ошибку «Список аргументов слишком длинный».

param1=$1
param2=$2
'set ${param1} "${param2}"'

Я знаю, что размер param2 огромен (около 15 МБ и может быть больше)).Я прочитал несколько постов о ARG_MAX и разбивке на более мелкие компоненты.

getconf ARG_MAX
67108864

Здесь размер ARG_MAX может легко вместить что-то размером не менее 15 МБ.Поэтому я не уверен, что именно здесь не так.Кроме того, я не уверен, смогу ли я разбить эту команду на более мелкие блоки.Это всего лишь одна команда, которая устанавливает целое значение за одну попытку.

Я также выполнил приведенную ниже команду для проверки пределов данных:

ulimit -d
unlimited

Здесь мы также имеем неограниченный размер.Кто-нибудь знает, как именно я могу увеличить предел ОС для запуска этих больших команд?Я использую CentOS Linux версии 7.5.1804 (Core) с ядром: 4.18.9.

1 Ответ

0 голосов
/ 21 октября 2018

С https://www.in -ulm.de / ~ mascheck / различным / argmax / :

как дополнительный предел с 2.6.23, один аргумент не должен быть длиннее, чемMAX_ARG_STRLEN (131072).

Так что вы можете попробовать:

cat file.txt | set -r x
...