1 votos

No se puede hacer que el script de shell con el nombre de archivo $1 variable funcione en Automator

defaults write '$1/Contents/info.plist' MyVariable false

Por alguna razón, no puedo hacer que esto funcione, y he intentado todo lo que se me ocurre. Incluso a través de un AppleScript, en lugar de un script de shell, con los mismos resultados.

Puedo hacer que primero se muestre el comando de salida, luego copiar esa salida y pegarla en Terminal, y funciona bien. La sintaxis es exactamente lo que quiero. Simplemente NO funcionará en Automator. Incluso intenté usar sudo y admin con los intentos de AppleScript, pero ese no es el problema.

Puedo enviar la salida a un archivo de texto, y al igual que al usar el portapapeles para pegar, la sintaxis es correcta y funciona como se espera.

Mi objetivo es poder arrastrar y soltar una aplicación en una aplicación de Automator, y hacer que agregue mi variable al info.plist en el paquete de la aplicación.

¿Por qué funcionaría en Terminal, pero no en Automator?

output:
defaults write '~/Desktop/MyApp.app/Contents/info.plist' MyVar false

Captura de pantalla de Automator

0voto

Citar en las conchas tiene sus desafíos :-)

$ foo=bar
$ echo "$foo"
bar
$ echo "'$foo'"
'bar'
$ echo '$foo'
$foo

Entonces, tu echo funciona porque ' no tiene un significado especial dentro de "", pero defaults write '$1/Contents/info.plist' MyVariable false no funcionará ni en Terminal ni en Automator porque el ' evita cualquier expansión de variable ($1 literalmente se mantiene como $1).

Intenta con defaults write "$1/Contents/info.plist" MyVariable false en su lugar.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X