No tenía idea de que todas las aplicaciones de Windows entendían los argumentos de la línea de comandos.
Si ese es el caso o no, no es el caso en Mac OS. Cuando utiliza la aplicación Terminal, está interactuando con un subsistema BSD que sigue todos los patrones que esperaría de un sistema operativo UNIX o Linux.
Existen abundantes recursos para familiarizarse con el shell bash y la línea de comandos * NIX. Para comenzar, el man
comando le dará la página de manual de cualquier comando que ingrese. Generalmente, todas las "palabras" separadas por espacios que escribe después de un comando se tratan como argumentos para ese comando, al menos hasta que llegue a algún tipo de redirección de salida o el carácter de control como |
, <
, >
, &
.
Así que en su ejemplo, estuviera llamando open
y pasando file.pdf
, --args
y -page=5
como argumentos. Como has observado, open
no sabe qué hacer con la mayoría de estos.
De todos modos, profundicemos. La mayoría de las aplicaciones (como Preview.app en este caso) tienen un archivo ejecutable en algún lugar de su paquete de aplicaciones. En realidad, puede ejecutar this ( /Applications/Preview.app/Contents/MacOS/Preview
) para iniciar la Vista previa directamente sin pasar open
, pero solo ciertos ejecutables diseñados específicamente comprenderán los argumentos de la línea de comandos. Preview
No es uno de ellos.
El man
comando solo funciona para los comandos que tienen instaladas páginas de manual, y generalmente solo serán comandos en la $PATH
variable de su shell . Para otros ejecutables, (y generalmente también para los estándar), puede intentar llamar al ejecutable con un --help
argumento para obtener información de uso, ya sea que esté o no en su ruta. Esto no funcionará para todo, pero es un patrón común.
Por lo tanto, puede haber un lector de PDF por ahí cuyo ejecutable entienda los argumentos de la línea de comandos, pero si todavía estamos trabajando con Vista previa, tenemos que cambiar a un paradigma diferente: AppleScript . Puede leerlo todo en Wikipedia, pero lo básico es que es un lenguaje de script de lenguaje natural que le permite enviar eventos de Apple mediante programación a las aplicaciones. Algunas aplicaciones implementan extensas bibliotecas AppleScript para permitir una mayor automatización.
La buena noticia aquí es que puede procesar AppleScript en la línea de comandos con osascript
. Aún más buenas noticias es que la gente ya ha resuelto su problema de AppleScript de hacer que Vista previa pase a una página en un PDF aquí: https://discussions.apple.com/thread/3215851
Entonces, ¿cuál debería ser su enfoque para resolver su problema?
- Diseñar un comando de terminal para abrir su PDF en Vista previa
open file.pdf
debería funcionar bien.
- Pruebe un AppleScript para cambiar la página de ese PDF a la que especifique (use Script Editor.app).
- Aprenda lo suficiente sobre la línea de comando para diseñar una declaración que ejecutará ambos pasos de una vez.
open
comando. Para ver qué argumentos puede aceptar, escribaman open
.