Para mostrar un diálogo con osascript, pruebe:
echo "set ddr to display dialog \"Press RUN to execute the Optimizer\" with title \"Optimizer\" buttons {\"Exit\", \"Run\"} default button \"Run\" cancel button \"Exit\"" | osascript -
Eso ejecuta el siguiente comando applescript desde el shell:
set ddr to display dialog "Press RUN to execute the Optimizer" ¬
with title "Optimizer" buttons {"Exit", "Run"} ¬
default button "Run" cancel button "Exit"
Tenga en cuenta que en el echo
los " se escapan pero los {} no. Dependiendo de su enfoque, esto puede cambiar.
Ver más en display dialog
en el ASLG aquí
Basándonos en el ejemplo de ASLG y en tu descripción anterior, para conseguir que se ejecute un shell script dirigido por el diálogo, prueba esto:
echo "set uc to false
try
set ddr to display dialog \"Press RUN to execute the Optimizer\" with title \"Optimizer\" buttons {\"Exit\", \"Run\"} default button \"Run\" cancel button \"Exit\"
on error number -128
set uc to true
end try
if uc then
display alert \"User cancelled\"
else if button returned of ddr is \"Run\" then
do shell script \"pwd\"
end if" | osascript -
Por man osascript
Un enfoque alternativo sería guardar el código applescript como un archivo de texto (o applescript compilado) en algún lugar y ejecutar osascript en él, así:
% osascript as_code.txt
% osascript as_code.scpt