El flujo de trabajo de Automator solo funciona al hacer clic en "paso"

Estoy tratando de escribir un flujo de trabajo que usará Shell para aplicar SHA256 a las celdas en una hoja de cálculo de Excel.

El flujo de trabajo (que puede ser un poco complicado) funciona, pero solo cuando hago clic en él usando "Paso"; si intento ejecutarlo o hacer un bucle, la salida no es el hash SHA256 sino la entrada original.

¿Algunas ideas? Como esto parece realmente extraño.

EDITAR: Gracias a @Graham Miln finalmente conseguí que esto funcionara solo en AppleScript sin Automator.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

¿Puedes arreglar tus capturas de pantalla? La vinculación a Dropbox no funciona, es mejor subirlos directamente a AD (lo que puede hacer desde el cuadro de diálogo "agregar imagen").

Respuestas (1)

El comportamiento que describe sugiere un problema de tiempo. Uno o más pasos no se completan antes de que comience el siguiente paso.

Considere combinar todos los pasos en un solo AppleScript. Puede usar el comando do shell script en AppleScript para llamar a shasum:

-- Get value to hash from clipboard
set myValue to the clipboard

-- Build the command to execute
set hashCommand to "echo -n " & quoted form of (myValue) & " | shasum -a 256"

-- Debug check the command; comment out when it looks good
display dialog hashCommand

-- Execute command and place on clipboard
set myHash to do shell script hashCommand
set the clipboard to myHash

El portapapeles es accesible por AppleScript :

display dialog (the clipboard)

Como un solo AppleScript, puede depurar mediante Aplicaciones > Utilidades > Editor de secuencias de comandos y obtener una visión mucho mejor de lo que sucede a medida que se ejecuta la secuencia de comandos.

Eso es realmente útil, gracias. Ahora lo he reducido a un aspecto mucho más simple. display dialog (the clipboard) set myValue to (the clipboard) set myHash to do shell script "echo -n " & quoted form of myValue & " | shasum -a 256 | pbcopy" display dialog (the clipboard)Pero algo anda mal con la forma en que el valor se pasa al script de Shell porque el valor del portapapeles de salida no es el hash correcto... (aunque es un hash)
La | pbcopytubería no es necesaria. do shell script está devolviendo el resultado de shasuminto myHash. Use algo como set the clipboard to myHashdespués de crear el hash.
El AppleScript en la respuesta se ha ampliado con comentarios e interacciones del portapapeles.
Ok, disculpas por no saber mucho de AppleScript, pero ahora lo tengo set myValue to "1" set myHash to do shell script "echo -n \"" & quoted form of (myValue) & "\" | shasum -a 256" set the clipboard to myHash display dialog (the clipboard)y esto no produce el hash SHA256 de 1. Si lo elimino shasum -a 256de la línea Shell, el resultado es -n '1', lo que sugiere un problema con la forma en que se pasa el valor al script Shell.
Puede editar su pregunta para incluir su AppleScript, el hash que está obteniendo 1y el hash que espera ver. Esto facilitará la respuesta y puede atraer a otros para que también ayuden.