이전 명령으로 생성된 셸 인쇄물에 액세스합니다.

이전 명령으로 생성된 셸 인쇄물에 액세스합니다.

파일 경로가 포함된 셸에서 메시지를 인쇄하는 명령을 실행해야 합니다.

>> myCommand.py
>> outputs path to file

경로에 액세스하여 파일을 자동으로 열 수 있도록(복사하여 셸에 붙여넣는 대신) 이 메시지가 어디에 저장되어 있는지 알고 싶습니다.

답변1

중복된 것 같지만 지금까지 찾은 모든 질문/답변은 서로 다르기 때문에 귀하의 질문에 직접 답변할 수 없습니다. 적어도 전체 문제는 아닙니다.

간결한 대답은 '아니요'입니다. tcsh, Bash, Zsh 또는 Fish(또는 제가 아는 모든 셸)에는 가장 최근 명령의 표준 출력을 캡처하는 자동 변수가 없습니다. 셸은 명령이 사용자에게 전달되는지 여부를 알지 못합니다. 실행 중은 단일 라인, 여러 라인의 스트림을 출력하거나 심지어 터미널 작업 명령(think 또는 모든 저주 기반 유틸리티)을 실행하려고 합니다 vi. nano이는 일부 명령의 출력이 계속될 수 있으므로 메모리 문제일 수도 있습니다. , 에, 에...

하지만 거기이를 자동화하는 방법. 명령의 출력을 보려는 파일 이름이 참조하는 결과 파일을 미리 알고 있는 경우 셸의 명령 대체를 사용하여 다음을 수행할 수 있습니다.

> less $(myCommand.py) # POSIX (Bash, Zsh) or
> less (myCommand.py) # Fish Shell

물론 파일을 여는 데 사용한 것으로 바꾸십시오 less.

다음을 사용하기 위해 변수의 파일 이름을 캡처할 수도 있습니다.

> OUTFILE=$(myCommand.py)
> echo $OUTFILE
> less $OUTFILE

물론 변수 이름은 원하는 대로 지정할 수 있습니다.

아니면 결과를 출력할 수도 있습니다.그리고변수로 캡처하십시오.

> OUTFILE=$(myCommand.py | tee /dev/tty)
filename
> less $OUTFILE # views "filename"

마지막으로 여기에서 확인할 수 있는 몇 가지 매우 해킹된 솔루션이 있습니다.이 스택 오버플로 질문모든 명령은 자동으로 캡처되지만 모든 명령에는 단점이 있습니다.

관련 정보