urxvt/zsh의 쉘 변수에 마지막 명령의 출력을 저장하는 방법은 무엇입니까?

urxvt/zsh의 쉘 변수에 마지막 명령의 출력을 저장하는 방법은 무엇입니까?

grepzsh에서 실행된 마지막 명령의 출력물(stdout 및 stderr)을 available 변수 등에서 사용할 수 있기를 원합니다.

답변1

명령의 출력을 파일(또는 변수)로 리디렉션할 수 있지만 이는 자동으로 발생하지 않습니다.

출력 리디렉션은 매뉴얼 페이지에서 큰 주제입니다. 용어를 상기시키기 위해 표준 출력과 오류를 리디렉션합니다.

foo=$(command 2>&1)

검사 통과

$ foo=$(oops 2>&1); date; echo "$foo"
Sun Feb 28 20:59:18 EST 2016
sh: 1: oops: not found

추가 자료:

답변2

출력을 캡처한 다음 출력이 한 화면에 맞으면 종료하도록 호출기를 설정할 수 있습니다. 맞지 않는 경우에는 호출기를 이용해 스크롤하여 검색할 수 있습니다.

export PAGER=less
export LESS=-FSXRi
# -F and -X are relevant here, but that's what I use
# also, less quickly toggles most by typing '-' and the option

zsh가 호출기를 통과하도록 명령을 자동으로 수정하는 방법이 있을 것 같지만 어떻게 해야 할지 모르겠습니다.

이 출력을 한 화면에 맞는 다른 디렉터리와 비교합니다.

find ~ -type f |& less
# |& to capture both stdout and stderr

관련 정보