3 votes

Comment fermer un fichier que vous avez ouvert avec /usr/bin/open ?

J'ai ouvert un fichier PDF avec /usr/bin/open, et j'aimerais maintenant le fermer à partir de la ligne de commande. (J'écris un script.)

Comment pourrait-on s'y prendre ?

3voto

ganbustein Points 1312

Vous ne pouvez pas, du moins pas directement. /usr/bin/open aura dit à une autre application d'ouvrir le fichier, puis se sera immédiatement dissocié de toute l'affaire.

Si vous savez quelle application a effectué l'ouverture, vous pouvez peut-être utiliser un script pour demander à l'application de la fermer. Quelque chose comme

/usr/bin/open SomeFile.pdf
# time passes
/usr/bin/osascript -e 'tell application "Preview" to close document "SomeFile.pdf"'

Mais cela présuppose que vous savez que Preview est l'application, que c'est la syntaxe correcte pour lui demander de fermer un document, et que vous avez obtenu la valeur correcte pour le nom du document.

Vous pouvez éliminer une partie de cette incertitude en spécifiant l'application dans la commande open, et en supposant que le document sera toujours le document frontal lorsque votre script voudra le fermer.

/usr/bin/open -a Preview SomeFile.pdf
# do some stuff
/usr/bin/osascript -e 'tell application "Preview" to close front document'

(Il pourrait être plus robuste de se référer à l'application par son bundle-id plutôt que par son nom).

/usr/bin/open -b com.apple.Preview SomeFile.pdf
# do some stuff
/user/bin/osascript -e 'tell application id "com.apple.Preview" to close front document

mais c'est à peine plus qu'une question de style).

En général, /usr/bin/open peut ouvrir à peu près tout. Il se comporte comme un double-clic, il peut donc "ouvrir" Windows (dans le Finder), des applications (en tant que telles), des images disques (en les montant), des partages réseau (en s'y connectant), ou même des documents ordinaires (en lançant l'application actuellement sélectionnée comme application par défaut pour ce type de document). Chacune de ces variantes de "ouvrir" a sa propre variante de "fermer".

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X