xslt shbang: 명령줄에서 xslt 사용

xslt shbang: 명령줄에서 xslt 사용

나는 (멍청하게?) 적당히 일반적인 것을 썼다xslt 스크립트.

표준 또는 이와 유사한 XML 문서를 읽어서 실행 파일로 변환하고 싶습니다.

다른 언어로 이를 수행하는 방법은 다음을 사용하는 것입니다.시방.

xsltproc 및 친구들과 함께 이를 수행하는 간단하고 표준적인 방법이 있습니까? 물론 첫 번째 주석 줄을 제거하기 위해 xsltproc 주위에 래퍼를 작성할 수 있지만 대략 표준적인 내용이 있는 경우 사용하는 것이 더 나을 것입니다.

답변1

일반을 사용할 수 있습니다binfmt기타실행 파일을 실행할 때 어떤 인터프리터가 사용되는지 처리하는 커널 모듈입니다. 일반적으로 qemu또는 접두사를 붙이지 않고 외부 아키텍처 파일을 실행할 수 있도록 하는 데 사용되지만 wine,마법파일 헤더의 일련의 문자 또는 특정 파일 확장자(예: *.xsltView Kernel )문서.

demo.xslt예를 들어, 다음 문자로 시작하는 파일이 있는 경우

<xsl:stylesheet version=...

<xsl:stylesheet파일의 오프셋 0에 있는 문자열을 인식하도록 모듈에 요청 하고 /usr/bin/xsltproc루트로 실행할 수 있습니다 .

colon=$(printf '\\x%02x' \':) # \x3a
echo ":myxsltscript:M::<xsl${colon}stylesheet::/usr/bin/xsltproc:" >/etc/binfmt.d/myxslt.conf 
cat /etc/binfmt.d/myxslt.conf >/proc/sys/fs/binfmt_misc/register

/etc재부팅 후에도 설정을 유지하려는 경우가 아니면 이 파일을 볼 필요가 없습니다 . 해당 파일이 없으면 /proc먼저 파일을 설치해야 합니다.

mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc

이제 어떤 인수로든 실행할 chmod +x demo.xslt수 있으면 demo.xslt추가 첫 번째 인수로 제공된 xsltproc파일 이름으로 실행 됩니다.demo.xslt

설정을 취소하려면 다음을 사용하세요.

echo -1 >/proc/sys/fs/binfmt_misc/myxsltscript

답변2

Shebang을 사용하여 XSLT 스타일시트를 실행 파일로 변경할 수 없습니다.

관련 정보