Script de Apple o BASH para instalar automáticamente múltiples aplicaciones

Me gustaría crear un script para instalar un grupo de programas. Los archivos PKG residen en un recurso compartido de archivos de Windows.

Actualmente puedo instalarlos uno a la vez a través de la Terminal usando la siguiente sintaxis:

sudo installer -store -pkg "/Volumes/{Path to package}" -target /

Pero cuando trato de incluir esto en mi script installer.sh , aparece un error de sintaxis que indica que parte de la ruta contenida entre comillas es una opción no válida. Parece que las comillas dobles alrededor de mi ruta no se incluyen cuando se pasan al shell.

Así que intenté escapar de las comillas agregando \ delante de cada comilla doble y obtengo el mismo error. ¿Se supone que debo escapar de mis citas de alguna otra manera?

installer -store -pkg “/Volumes/ChiefGeneral/TechGeneral/Misc/Batch Install/X6/Chief Architect Premier X6.pkg” -target /
installer -store -pkg “/Volumes/ChiefGeneral/TechGeneral/Misc/Batch Install/X6/Chief Architect Interiors X6.pkg” -target /
installer -store -pkg “/Volumes/ChiefGeneral/TechGeneral/Misc/Batch Install/X6/Chief Architect Lite X6.pkg” -target /

Gracias.

Presumiblemente, deberá ser root para ejecutar el script, entonces, ¿puede 1) eliminar el sudo del comando en el script de shell y 2) ejecutarlo como sudo installer.sh? No estoy seguro de que haya algún cambio en el comportamiento, pero veamos. Finalmente, puede ser útil si puede publicar el script install.sh que está creando.
Gracias por el guión, ¿puedes ponerlo en tu pregunta? El formato se pierde en los comentarios.

Respuestas (2)

¿Es posible que el editor que está usando para crear el script esté usando "comillas tipográficas" en lugar de comillas dobles regulares, y por lo tanto no está tratando el material citado como un solo parámetro?

Intente deshacerse de las comillas y escapar de los espacios con \ y vea si eso funciona. Si es así, asegúrese de estar usando un editor de texto simple y antiguo que no interfiera con sus citas.

¡Gracias! Ese debe haber sido el problema. Usé TextEdit para escribirlo al principio, pero lo reescribí usando Text Wrangler y funciona perfectamente.

Tradicionalmente, la instalación de aplicaciones en OS X ha sido un poco complicada. Sin embargo, me topé con este equivalente de Homebrew para aplicaciones hace unas semanas y me encanta: Homebrew Cask . Ya era un fanático de Homebrew para la aplicación de línea de comandos y la administración de paquetes y la tarea Cask es la misma línea de comandos simple y se aplica a la búsqueda e instalación de aplicaciones en mis máquinas OS X.

Si ya tienes Homebrew, conseguir Cask es sencillo:

brew install caskroom/cask/brew-cask

Ahora puedo usar el caskcomando para instalar Aplicaciones. Hace la misma filosofía de uso compartido administrado por enlace simbólico brewpara administrar cosas. Digamos que quería Google Chrome:

brew cask install google-chrome

y lo tengo

Para ver una lista de aplicaciones disponibles para instalar con caskdo:

brew cask search

Ahora puede programar la instalación de la aplicación con relativa facilidad. Incluso si un sistema no brewlo tiene, simplemente puede agregar una sección de verificación e instalación a su secuencia de comandos para configurarlo en la primera ejecución.

Gracias. Tendré que investigar esto. ¿Admitirá la instalación de archivos PKG desde mi propio sistema?
Hay soporte para instalar sus propios paquetes desde sus propios repositorios a través de toques en barriles. Consulte "Otras formas de especificar barriles" aquí: github.com/caskroom/homebrew-cask/blob/master/USAGE.md