일부 명령을 실행하고 해당 출력을 상대 경로가 있는 로그 파일로 리디렉션한다고 가정해 보겠습니다. 세 가지 다른 예:
sh script.sh > logs/script1.log
./script2.sh &> logs/script2.log
./script3.sh input.txt > output.txt 2>logs/script3.err
script2.sh
및 실행 스크립트가 동일한 디렉터리에 있지만 에는 없으므로 script3.sh
접두어를 붙여야 하지만 데이터 파일(입력 또는 출력)에 대한 경로를 접두어로 붙이는 것이 필요합니까 (또는 바람직합니까)? 그렇다면 위의 세 가지 예는 다음과 같습니다../
${PATH}
sh ./script.sh > ./logs/script1.log
./script2.sh &> ./logs/script2.log
./script3.sh ./input.txt > ./output.txt 2>./logs/script3.err
내 테스트에서 결과는 동일했지만 항상 그렇습니까? 어쩌면 심볼릭 링크를 사용할 때 다를 수도 있습니다. 잘 모르겠습니다. 따라서 이 질문입니다.
내가 사용하는 코드는 ./
관련 데이터(로그도 데이터임) 파일 경로 앞에 포함되는 경우도 있고 그렇지 않은 경우도 있습니다. 아직 모범 사례에 대한 팀 간 합의가 이루어지지 않았으며 이를 만들고 싶습니다. (실행 파일이 아닌) 상대 데이터 파일 경로가 중요하지 않다면 ./
실행 불가능한 경로와 함께 사용하지 않는 것이 좋으며, 가끔 차이가 난다면 항상 사용해야 할 것 같습니다. 실행 가능하지 않은 상대 파일 경로를 앞에 붙입니다../
가장 좋은 접근 방식은 무엇입니까?
이에 대한 권위 있는 문서가 있습니까?