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