Establecer la variable Bash como icono en osascript -e Mostrar cuadro de dialog con icono

Tengo un script bash que utiliza un código osascript -e para un dialog. Quiero usar un ícono personalizado en ese dialog. Sin embargo, no entiendo cómo codificarlo, así que es completamente portátil para que sea ejecutable sin importar dónde lo ubique un usuario en su sistema de files.

 cd "$(dirname "$0")/../../" CONTENTS="$PWD" export ICNSPATH="$CONTENTS/Resources/path/to/icon/Myicon.icns" osascript -e 'tell application id "com.apple.systemuiserver"' -e 'display dialog "Lorem ipsum dolor sit amet." buttons {"Cancel", "Okay"} with icon '$ICNSPATH' as alias' -e 'end tell' 

Actualmente, la única manera en que puedo hacer que funcione con un ícono personalizado es codificándolo y no creo que sea una buena idea.

  • cómo ejecutar un alias usando bash -c desde IDEA
  • ¿Hay una utilidad de command-line para mostrar una cadena o una image en la barra de estado en Mavericks?
  • Cambiar la disposition de visualización en OS X mediante progtwigción
  • ¿Cómo get el inode de un file de alias?
  • Cómo cambiar la versión bash con homebrew
  • Encuentre el disco adjunto específico, no el volumen, por Applescript
  • Las soluciones deben ser sin complementos y deben funcionar en Mac OSes 10.6 – 10.10.

    Apreciar cualquier ayuda que puedas prestar.

  • Apagado "no hay presente y no se ha especificado el progtwig askpass"?
  • ¿Cómo pausar el video de YouTube a través de un atajo de keyboard o desde la barra de menu?
  • ¿Por qué no puedo ver miniaturas en el buscador?
  • F.lux no siempre funciona en los cambios de resolución. ¿Hay alguna manera de verificar si la resolución cambia?
  • ¿Cómo puedo get la ID de Apple asociada de un usuario desde la línea de command?
  • Cómo escanear una carpeta para subcarpetas y copyr un file en cada salida
  • One Solution collect form web for “Establecer la variable Bash como icono en osascript -e Mostrar cuadro de dialog con icono”

    Lo que siempre funcionará es codificar el file de icono con base64 -b 64 (para mantener las líneas lo suficientemente cortas), includelo en su script de shell como un documento aquí y decodificarlo sobre la marcha.

    Para crear una versión codificada en base64 de su file de icono, ejecute

     base64 -b 64 -i path/to/icon/Myicon.icns > myicon.base64 

    (Esto solo debes hacer una vez).

    A continuación, abra su script de shell en su editor e inserte myicon.base64 (que podría ser bastante grande) en el lugar correcto

     ... ICNSPATH=${TMPDIR:-/tmp}/icon.$$.icns base64 -D -o $ICNSPATH <<"END_OF_ICON" ** replace with content of myicon.base64 ** END_OF_ICON osascript -e '... with icon '$ICNSPATH' as alias' # write full command here rm -f $ICNSPATH 

    El script final se verá como el siguiente

     ... ICNSPATH=${TMPDIR:-/tmp}/icon.$$.icns base64 -D -o $ICNSPATH <<"END_OF_ICON" aG93IHRvIGNvZGUgaXQgc28gaXQncyBjb21wbGV0ZWx5IHBvcnRhYmxlIHNvIGFz ... eSBwdXQgaXQgaW4gaGlzIGZpbGUgc3lzdGVtLgoK END_OF_ICON osascript -e '... with icon '$ICNSPATH' as alias' rm -f $ICNSPATH 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).