터미널에서 마지막으로 실행한 명령의 출력을 어떻게 저장할 수 있나요?

터미널에서 마지막으로 실행한 명령의 출력을 어떻게 저장할 수 있나요?

내 프로젝트에 대해 클린 빌드를 수행하면 무언가를 출력하고 증분 빌드를 수행하면 다른 것(더 적은)을 출력하는 증분 빌드 명령이 있습니다.

mycommand.sh이미 클린 빌드를 실행했고 출력이 터미널 창에 인쇄된 경우(복사 및 붙여넣기를 사용하지 않고) 이를 어떻게 저장할 수 있나요 ?

할 일을 잊어버렸어요

mycommand.sh > myfile.txt

또는

mycommand.sh >> myfile.txt

출력을 파일로 저장하기 위한 것입니다.

답변1

이전 명령을 실행 하거나 $(!!)다시 실행하는 것이 해결책인 것처럼 보일 수도 있지만(때때로) 해결책이 될 수도 있지만 다음과 같은 단점도 있습니다.충분히그것을 사용하는 것을 이해하십시오.

예: 명령이 다음과 같이 일부 수정을 수행한 경우

rm -rv /tmp/*

그런 다음 어떤 방식으로든 해당 명령을 다시 실행하면~ 아니다첫 번째 실행 전에 /tmp/가 비어 있었고 두 번째 실행에서도 여전히 비어 있는 경우 출력은 동일해야 한다는 점을 제외하고 이전과 동일한 출력을 생성합니다.

결론: 없다안전한명령이 실행되는 동안 저장하지 않은 경우 마지막 명령의 출력을 재사용하거나 (복사 및 붙여넣기 없이) 저장하는 방법입니다.

답변2

bash는 메모리의 매개변수나 블록에 출력을 할당하지 않기 때문에 그렇게 할 수 없습니다.

그러나 다음을 수행할 수 있습니다 $(!!).다시 계산하다(재사용하지 않음) 마지막 명령의 출력.

자체적 !!으로 마지막 명령을 실행합니다.

$ echo pierre
pierre
$ echo my name is $(!!)
echo my name is $(echo pierre)
my name is pierre

원천:Bash에서 마지막 명령의 출력 재사용

관련 정보