'less' 명령이 표준 입력에서 데이터를 읽을 수 없는 이유는 무엇입니까?

'less' 명령이 표준 입력에서 데이터를 읽을 수 없는 이유는 무엇입니까?

이 명령은 less < brown_fox.txt데이터를 읽고 brown_fox.txt화면에 인쇄합니다. 하지만 더 적은 명령을 사용하여 표준 입력이나 키보드에서 데이터를 읽으려면 어떻게 해야 합니까?

다음 명령을 시도했습니다.

less
less <&0

그러나 둘 다 성공하지 못했습니다.

답변1

에서 읽으려면 다음을 stdin사용할 수 있습니다.

less -

그러나 이는 다른 명령의 출력을 less. 키보드로 입력하는 것도 가능하지만, 맹목적으로 입력하게 되며 Ctrl-Cless로 제어권을 돌려보내려면 키를 눌러야 하므로 그런 종류의 사용이 다소 어렵습니다(무의미하지는 않지만).또한 이것은 문서화되지 않았으며 전혀 이식 가능하지 않을 수도 있습니다!

less에서 읽고 싶은 이유를 더 자세히 지정하고 싶으신가요 stdin?

답변2

에 명령을 보내려는 경우 명령줄에서 less다음을 사용하여 수행할 수 있습니다 .+

less +G somefile

ls -l | less +G

less이는 명령 을 연 다음 G기본 프롬프트에 입력하는 것과 같습니다 .


less입력한 페이징 정보 에 대해 이야기하는 경우 heredoc을 사용할 수 있지만 해당 사용 사례는 확실하지 않습니다.

less << EOF
hello
world
EOF

관련 정보