groff에서 파일이 존재하는 경우에만 파일을 ".so"하는 방법이 있습니까? ".so 파일"을 수행하고 파일이 존재하지 않는 경우 오류 메시지 없이 계속 실행되도록 하거나, 먼저 확인하기 위해 .if에 무언가를 넣을 수 있습니다. (모든 오류 메시지를 억제하는 명령줄 옵션이 있다면 좋지 않을 것입니다. 그렇게 하면 실제 오류를 수정할 수 없게 됩니다.)
groff에서 직접 수행할 수 없다면 파일이 존재하는지 확인하고 .so 명령을 실행하는지 여부를 확인하는 폐쇄형 쉘 스크립트를 만들겠지만, inside-groff 방법이 있으면 더 간단할 것입니다.
답변1
하나 있다안전하지 않음이 문제에 대한 해결책은 쉘 명령 실행을 roff
요청 하는 것입니다..pso
.pso if [ -f file ]; then cat file; fi
이 기능이 작동하려면 groff
다음을 실행해야 합니다 . 그렇지 않으면 진단 메시지가 표시됩니다.-U
.pso request not allowed in safer mode
내가 아는 한, 파일이 존재하는지 감지하는 내장 테스트는 없습니다.
답변2
나는 groff 1.23.0이 귀하의 사용 사례 요구 사항을 충족하는 새로운 기능을 가지고 있다고 믿습니다 soquiet
. 파일 시스템 개체에 대한 테스트를 공개하지는 않지만 파일을 찾을 수 없는 경우 소음 없이 파일을 가져오도록 시도할 수 있습니다. 그런 다음 파일에 특정 레지스터, 매크로 또는 문자열에 대한 정의가 있는지 확인하여 성공적인 획득을 테스트할 수 있습니다.
다음은 최신 groff 1.23.0 릴리스 후보를 발표한 내용입니다.
https://lists.gnu.org/archive/html/groff/2023-02/msg00090.html