Apple- oder BASH-Skript zum automatischen Installieren mehrerer Apps

Ich möchte ein Skript erstellen, um eine Gruppe von Programmen zu installieren. Die PKG- Dateien befinden sich auf einer Windows-Dateifreigabe.

Ich kann sie derzeit einzeln über das Terminal mit der folgenden Syntax installieren:

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

Aber wenn ich versuche, dies in mein installer.sh- Skript einzufügen, erhalte ich einen Syntaxfehler, dass ein Teil des in Anführungszeichen enthaltenen Pfads eine ungültige Option ist. Es scheint, dass die doppelten Anführungszeichen um meinen Pfad nicht enthalten sind, wenn sie an die Shell übergeben werden.

Also habe ich versucht, die Anführungszeichen zu umgehen, indem ich vor jedem doppelten Anführungszeichen ein \ hinzufüge, und ich bekomme den gleichen Fehler. Soll ich meinen Anführungszeichen auf andere Weise entkommen?

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 /

Danke schön.

Vermutlich müssen Sie root sein, um das Skript auszuführen, also können Sie 1) das sudo aus dem Befehl im Shell-Skript entfernen und 2) es als ausführen sudo installer.sh? Ich bin mir nicht sicher, ob sich das Verhalten ändern wird, aber mal sehen. Schließlich kann es hilfreich sein, wenn Sie das von Ihnen erstellte install.sh-Skript veröffentlichen können.
Danke für das Skript, kannst du es in deine Frage einfügen? Die Formatierung geht in den Kommentaren verloren.

Antworten (2)

Ist es möglich, dass der Editor, mit dem Sie das Skript erstellen, "Smartquotes" anstelle von normalen doppelten Anführungszeichen verwendet und das zitierte Material daher nicht als einzelnen Parameter behandelt?

Versuchen Sie, die Anführungszeichen loszuwerden und die Leerzeichen mit \ zu umgehen, und sehen Sie, ob das funktioniert. Wenn dies der Fall ist, stellen Sie sicher, dass Sie einen einfachen alten Texteditor verwenden, der Ihre Zitate nicht durcheinander bringt.

Danke schön! Das muss das Problem gewesen sein. Ich habe TextEdit verwendet , um es zuerst zu schreiben, aber ich habe es einfach mit Text Wrangler umgeschrieben und es funktioniert perfekt!

Das programmgesteuerte Installieren von Apps unter OS X war traditionell ein bisschen mühsam. Allerdings bin ich vor ein paar Wochen über dieses Homebrew -Äquivalent für Apps gestolpert und bin begeistert: Homebrew Cask . Ich war bereits ein Homebrew-Fan für die Befehlszeilen-App und die Paketverwaltung und die Cask-Aufgabe ist die gleiche, einfache Befehlszeile und gilt für das Abrufen und Installieren von Anwendungen auf meinen OS X-Computern.

Wenn Sie bereits Homebrew haben, ist es einfach, Cask zu bekommen:

brew install caskroom/cask/brew-cask

Jetzt kann ich den caskBefehl verwenden, um Anwendungen zu installieren. Es macht die gleiche Symlink-verwaltete Freigabephilosophie brewfür die Verwaltung von Dingen. Nehmen wir an, ich wollte Google Chrome:

brew cask install google-chrome

und ich habe es.

Um eine Liste der zur Installation verfügbaren Anwendungen anzuzeigen, tun Sie caskFolgendes:

brew cask search

Sie können die Anwendungsinstallation jetzt relativ einfach skripten. Selbst wenn ein System nicht brewdarauf verfügt, können Sie Ihrem Skript einfach einen Check-and-Install-Abschnitt hinzufügen, um es bei der ersten Ausführung einzurichten.

Danke schön. Ich muss dem nachgehen. Wird es die Installation von PKG-Dateien von meinem eigenen System unterstützen?
Es gibt Unterstützung für die Installation Ihrer eigenen Pakete aus Ihren eigenen Repos über Taps on Fässer. Siehe „Andere Möglichkeiten, Fässer anzugeben“ hier: github.com/caskroom/homebrew-cask/blob/master/USAGE.md