
머리말
이 질문은 본질적으로 이론적이므로 Unix Stack 교환 범위 내에 있는지 확실하지 않습니다. 나는 그것을 다른 스택 교환으로 옮길 의향이 있습니다.
문맥
Unix 명령 프롬프트에서 사용자는 다음을 입력할 수 있습니다.;
여러 명령을 순서대로 실행합니다. 하나가 실패하더라도 다음 명령 실행이 중지되지 않습니다.
질문
사용자가 를 사용하여 한 번의 프롬프트 실행으로 함께 연결할 수 있는 명령 수에 대한 이론적 한계는 얼마입니까 ;
?
답변1
그만큼이론적 인개수 제한명령쉘( sh
여기서 가정)이 한 줄을 취할 수 있다는 것은POSIX 표준에 정의되어 있음:
입력 파일은 텍스트 파일이어야 하며,단, 줄 길이는 무제한이어야 합니다.. 입력 파일이 0개 이상의 빈 줄과 주석으로만 구성된 경우
sh
종료 상태가 0으로 종료됩니다.
이는 쉘이 허용할 수 있어야 함을 의미합니다.어느각 개별 명령이 해당 명령보다 길지 않을 정도로 짧으면 한 줄에 명령 수를 입력할 수 있습니다.execve()
기능허용합니다(인수, 현재 환경의 환경 변수 및 해당 값이 포함된 단일 명령의 길이는 총 ARG_MAX
바이트보다 작아야 합니다).
실제로 이는 셸 프로세스에 적용되는 메모리 리소스 제한에 의해 제한됩니다.