터미널에서 마지막으로 실행된 명령의 출력을 저장하는 방법은 무엇입니까?

터미널에서 마지막으로 실행된 명령의 출력을 저장하는 방법은 무엇입니까?

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

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에서 마지막 명령의 출력 재사용

관련 정보