bash를 Trace.log, Trace1.log 등에 기록하는 방법은 무엇입니까?

bash를 Trace.log, Trace1.log 등에 기록하는 방법은 무엇입니까?

스크립트를 작성 중인데 다른 파일이 있으면 해당 파일에 쓰고 싶습니까?

traceroute google.com > trace.log

어떤 도움이라도 주시면 감사하겠습니다.
또한 저는 초보자이므로 예제가 도움이 될 것입니다.
감사합니다.

답변1

다음은 한 가지 접근 방식입니다.

#!/bin/sh
n=
while true
do
    fname="trace$n.log"
    [ -f "$fname" ] || break
    n=$(($n+1))
done
traceroute google.com >"$fname"

위의 명령은 각 잠재적 이름을 차례로 , , 등으로 반복합니다 trace.log. trace1.log존재 trace2.log하지 않는 이름을 처음 발견하면 루프에서 벗어나 traceroute명령을 실행합니다.

주의 사항: 이 스크립트는 경쟁 조건을 처리하려고 시도하지 않습니다. 특히, 스크립트가 파일의 존재를 확인한 후 쓰기를 위해 해당 파일을 열기 전의 순간이 있습니다. 그 순간, 실행 중인 다른 프로그램이 파일 생성을 시도할 수 있습니다. 이것이 우려되는 경우에는 좀 더 복잡한 접근 방식이 필요할 것입니다.

관련 정보