“Hata: Komut Satırı Çok Uzun” etrafında bir yol var mı?


1

Çok fazla argüman girmem gereken bir komut satırı yazılımı kullanıyorum. Gibi bir şey

./exec -A argA -B argB -C argC ...

Hata mesajını aldığım çok fazla argüman var

Error: Command line too long (302110 >= 130592)

Çözümlerden biri, yazılımı bir dosyadan argümanları okuyacak şekilde değiştirmek olacaktır. Ancak, kaynak koduna erişimim yok.

Bu sorunun etrafında bir yolu var mı?


Bilgin olsun Mac OS X 10.11.3 ve kullan Terminal 2.6.1 (361.1)


getconf ARG_MAX -Kernel tarafından izin verilen maksimum karakter sayısı.
fd0

ilginç biçimde getconf ARG_MAX döner 262144 ki neredeyse iki kat daha fazla 130592 (ama yine de daha düşük 302110 ).
Remi.b

Yanıtlar:


1

Argümanları gibi bir dosyaya yerleştirin. -A argA -B argB -C argC … (ikili hariç), sonra çalıştırın:

cat /path/to/file | xargs ./exec

Cevaplarınız için teşekkürler. Çözümünüzü özel sorunuma uygularken sorun yaşadım (bu çok basit görünmesine rağmen) ve ben de sordum bu soru ilk cevap nerede görünüyor cat /path/to/file | xargs ./exec zaten bir çözüm olamaz.
Remi.b
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.