사용된 명령과 그 출력을 파일에 기록합니다.

사용된 명령과 그 출력을 파일에 기록합니다.

훨씬 더 간단한 질문에 대한 답 아래에 간단한 질문이 숨겨져 있습니다.

ls > file.txt리디렉션하는 명령을 사용한다고 가정 해 보겠습니다 . file.txt의 내용은 다음과 같습니다.stdoutlsfile.txt

some_file.txt
some_dir/

내가 사용하는 실제 명령도 캡처하려면 어떻게 해야 합니까? 예를 들어, 이 새로운 명령을 사용하면 파일 내용은 다음과 같아야 합니다.

$ls
some_file.txt
some_dir/

$ls첫 번째 줄의 명령을 참고하세요 . $내 문제를 해결하는 데 필요하지 않은 bash 기호입니다.

사용자 인수를 허용하고 해당 인수를 bash 명령에 사용하는 긴 bash 파일이 있으므로 전체 bash 명령을 인쇄해야 합니다.

답변1

짧은 대답: "아마 그렇지 않을 것입니다." 당신은 껍질에게 자신의 꼬리를 먹으라고 요구하는 것입니다. 이는 >콘텐츠를 리디렉션할 뿐입니다. 콘텐츠의 출처가 아닌 출력만 알 수 있습니다. 명령 history이 실행될 때까지 명령이 기록되지 않습니다. 디버깅( )을 켤 수 있지만 set -x이렇게 하면 색상/문자라는 용어도 인쇄되므로 원하는 내용이 아닐 수도 있습니다. 따라서 가장 좋은 옵션은 파이프라인 이후에 추가 명령을 실행하는 것입니다.

$ sed -i 1i\\"$(history -1 | cut -f 1 -d ';' | cut -c 8-)" some_file.txt

아마도 더 똑똑한 방법이 있을 것입니다. 하지만~해야 한다.some_file.txt

관련 정보