리디렉션 연산자, 표준 입력 및 명령 인수

리디렉션 연산자, 표준 입력 및 명령 인수

저는 William Shots의 "The Linux Command Line"을 따르고 있습니다. 내가 이해하는 바에 따르면, >운영자는 표준 출력을 파일에 저장하고 <파일에서 표준 입력을 얻습니다.

키보드가 기본 표준 입력이고 <특정 파일에서만 입력을 받는 경우 ls -l포함된 위치와 동일하지 않은 이유는 무엇입니까 ls < some_params.txt?some_params.txt-l

미리 감사드립니다

답변1

where will contain ls -l과 같지 않은 이유는 무엇 입니까 ?ls < some_params.txtsome_params.txt-l

명령줄은 표준 입력이 아니기 때문입니다!

ls표준 입력을 사용하지 않기 때문에 여기서는 좋은 예가 아닙니다. 단지 가져온 명령줄 옵션을 처리하고, 일부 디렉터리를 찾아보고, 목록을 표준 출력으로 인쇄합니다.

하지만 이런 것을 생각해 보세요 cat -n. -n명령줄에서 플래그를 가져온 다음 표준 입력에서 읽고 줄 번호를 추가하고 표준 출력에 인쇄합니다 . 그렇지 않은 경우 < filename입력은 터미널(예: 키보드)에서 제공됩니다. 이를 통해 파일에서 가져옵니다.

당신이 할 수 있는 일은 명령 대체를 사용하여 파일 내용을 명령줄에 삽입하는 것입니다. ls $(cat some_params.txt)(또는 ls $(< some_params.txt)이를 지원하는 셸에서) 제안한 대로 수행됩니다.

관련 정보