3
กำหนดขนาดสูงสุดสำหรับอาร์กิวเมนต์คำสั่งเดียวคืออะไร
ARG_MAXฉันถูกภายใต้การแสดงผลที่ความยาวสูงสุดของอาร์กิวเมนต์เดียวไม่ได้เป็นปัญหาที่นี่ให้มากที่สุดเท่าขนาดรวมของอาร์กิวเมนต์อาร์เรย์โดยรวมขนาดบวกของสภาพแวดล้อมซึ่งจะถูก จำกัด ดังนั้นฉันคิดว่าบางสิ่งเช่นนี้จะประสบความสำเร็จ: env_size=$(cat /proc/$$/environ | wc -c) (( arg_size = $(getconf ARG_MAX) - $env_size - 100 )) /bin/echo $(tr -dc [:alnum:] </dev/urandom | head -c $arg_size) >/dev/null ด้วยความ- 100ที่เกินพอที่จะอธิบายความแตกต่างระหว่างขนาดของสภาพแวดล้อมในเชลล์และechoกระบวนการ แต่ฉันได้รับข้อผิดพลาด: bash: /bin/echo: Argument list too long หลังจากเล่นไปซักพักผมก็พบว่าค่าสูงสุดนั้นเป็นลำดับเลขฐานสิบหกที่เล็กกว่า: /bin/echo \ $(tr -dc [:alnum:] </dev/urandom | head -c $(($(getconf ARG_MAX)/16-1))) \ …