훨씬 더 간단한 질문에 대한 답 아래에 간단한 질문이 숨겨져 있습니다.
ls > file.txt
리디렉션하는 명령을 사용한다고 가정 해 보겠습니다 . file.txt의 내용은 다음과 같습니다.stdout
ls
file.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