/ / AppleScript arrojando errores en llaves en cadena - shell, applescript, llaves en espiral

AppleScript arroja errores en llaves en cadenas - shell, applescript, llaves en espiral

Estoy intentando generar un script de shell en AppleScript. Al usar el siguiente patrón:

set tDur to "PT1H21M7S"
set tSh to "echo "" & tDur & "" | egrep -o "[0-9]+M" | sed s/M// | sed -e :a -e s/^.{1,1}$/0&/;ta"

... me sale el error

Expected “"” but found unknown token.

El cursor está aterrizando en las primeras llaves después de que se lanza el error, y puedo escapar de las llaves otra vez, por ejemplo:

\{1,1\}

... pero ambos personajes de escape terminan en mi script de shell, lo cual es malo.

Si elimino la sentencia sed final:

set tSh to "echo "" & tDur & "" | egrep -o "[0-9]+H" | sed s/H//"

... AppleScript aceptará la cadena. He probado varias configuraciones de AppleScript. quoted form of propiedad (por Apple "s documentación), pero fue en vano.

edit: comando shell de trabajo Estoy intentando que AppleScript genere:

echo "PT1H2M21S" | egrep -o "[0-9]+M" | sed s/M// | sed -e :a -e "s/^.{1,1}$/0&/;ta"

Edición: también se agregó el ajuste de la tDur Variable por claridad.

Cualquier ayuda apreciada!

Respuestas

0 para la respuesta № 1
set tSh to "echo " & (quoted form of tDur) & " | egrep -o "[0-9]+H" | sed s/H//"

Si está en 10.10, considere usar NSTask a través del puente AppleScriptObjC. diferente a do shell script, te permite pasar datos a través de STDIN, que es la forma correcta de hacer estas cosas. (Aunque, francamente, nada de esta mierda sería necesaria en primer lugar si AppleScript tuviera una biblioteca estándar que valga la pena).