0 votos

¿Cómo puedo enviar contenido HTML a Safari a través de la línea de comandos?

Estoy en una situación en la que estoy recibiendo contenido HTML a través de un tubo. Me gustaría mostrar en una ventana del navegador. Pero el paso obvio,

somethingThatProducesHTMLonStdout | open -f -a "Safari"

no funciona: Safari muestra el contenido, sino como texto sin formato; no representa el código HTML. Sé que es un hecho que mi contenido HTML es válido el contenido HTML. De hecho, es fácil demostrar este problema con un trivial de caso de prueba:

echo "<html><body>foo</body></html>" | open -f -a "Safari"

hace lo mismo – muestra de texto sin formato, no se representa el contenido. Estoy en una pérdida en cuanto a por qué Safari insiste en hacer esto. ¿Cuál es el secreto para hacer que el HTML?

Nota: sé que puedo hacer este trabajo por guardar el contenido en un archivo temporal y, a continuación, abrir el archivo temporal. Quiero hacer que funcione sin necesidad de utilizar un archivo temporal, si es posible.

2voto

Arminius Puntos 47

Puedes usar algo como

 echo '<html><body><h2>Hi, there!</h2>foo</body></html>' > /tmp/x.html && open -a "Safari" /tmp/x.html
 

Ingresé algún HTML que contiene un signo de exclamación para mostrar que necesitas usar comillas simples para el shell, de lo contrario interpretará esto como un recordatorio de historia. Sí, más tiempo y necesitas un nombre de archivo, pero puedes usar la herramienta somethingThatProducesHTMLonStdout de tu pregunta.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X