Ich verwende eine Befehlszeilensoftware, für die ich viele Argumente eingeben muss. Etwas wie
./exec -A argA -B argB -C argC ...
Es gibt so viele Argumente, dass ich die Fehlermeldung bekomme
Error: Command line too long (302110 >= 130592)
Eine Lösung wäre, die Software so zu modifizieren, dass sie Argumente aus einer Datei liest. Allerdings habe ich keinen Zugriff auf den Quellcode.
Gibt es eine Möglichkeit, dieses Problem zu umgehen?
FYI, ich bin an Mac OS X 10.11.3
und benutzeTerminal 2.6.1 (361.1)
Setzen Sie die Argumente in eine Datei wie -A argA -B argB -C argC …
(ohne die Binärdatei) und führen Sie dann Folgendes aus:
cat /path/to/file | xargs ./exec
cat /path/to/file | xargs ./exec
sowieso keine Lösung sein kann.
fd0
getconf ARG_MAX
-die maximal vom Kernel erlaubten Zeichen.Remi.b
getconf ARG_MAX
die Rendite262144
fast doppelt so hoch wie130592
(aber immer noch niedriger als302110
).