저는 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.txt
some_params.txt
-l
명령줄은 표준 입력이 아니기 때문입니다!
ls
표준 입력을 사용하지 않기 때문에 여기서는 좋은 예가 아닙니다. 단지 가져온 명령줄 옵션을 처리하고, 일부 디렉터리를 찾아보고, 목록을 표준 출력으로 인쇄합니다.
하지만 이런 것을 생각해 보세요 cat -n
. -n
명령줄에서 플래그를 가져온 다음 표준 입력에서 읽고 줄 번호를 추가하고 표준 출력에 인쇄합니다 . 그렇지 않은 경우 < filename
입력은 터미널(예: 키보드)에서 제공됩니다. 이를 통해 파일에서 가져옵니다.
당신이 할 수 있는 일은 명령 대체를 사용하여 파일 내용을 명령줄에 삽입하는 것입니다. ls $(cat some_params.txt)
(또는 ls $(< some_params.txt)
이를 지원하는 셸에서) 제안한 대로 수행됩니다.