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