Bash Script App Inventur

Z

Zentorik

Registriert
Thread Starter
Dabei seit
19.06.2013
Beiträge
2
Reaktionspunkte
0
Hallo liebe Entwicklergemeinde,

ich habe das Problem, feststellen zu müssen, welche Programme in welcher Version auf einem Mac installiert sind. Meine Idee war es nun, mit einem BashScript die Info.plist auszulesen und die Ergebnisse in einer CSV-Datei zu sammeln. Im Prinzip funktioniert dies bereits, nur besteht die Problematik das Adobe- und Microsoftanwendungen in dieser Liste nicht erscheinen. Hat vielleicht jemand ein ähnliches Problem bereits gelöst oder könnte mir bei meinem Script helfen?

Code:
#!/bin/bashFILES=/Applications/*
OUTPUT=~/Desktop/applications.csv
touch $OUTPUT
for f in $FILES
do
  if [ -f "$f/Contents/Info.plist" ]; then
      NAME=`defaults read "$f/Contents/Info.plist" CFBundleExecutable`
      VERSION=`defaults read "$f/Contents/Info.plist" CFBundleShortVersionString`
    echo "$f"
      echo "$NAME,$VERSION,$f" >> $OUTPUT
  else
      SUBDIR="$f/*"
      for g in $SUBDIR
      do
        if [ -f "$g/Contents/Info.plist" ]; then
          NAME=`defaults read "$g/Contents/Info.plist" CFBundleExecutable`
          VERSION=`defaults read "$g/Contents/Info.plist" CFBundleShortVersionString`
        echo "$g"
          echo "$NAME,$VERSION,$g" >> $OUTPUT
        fi
      done
  fi
done

Das Script durchsucht die ersten zwei Ordnerebenen und schreibt die Werte aus der .plist im CSV-Format in die Outputdatei.
 
dann reichen wohl die ordner ebenen nicht?
warum machst du es nicht über den system_profiler?
system_profiler SPApplicationsDataType
 
weil ich nicht mal von der Existenz dieses Befehls wusste. :)

Code:
#!/bin/bash
system_profiler -detailLevel mini system_profiler -xml > ~/Desktop/AppInventory_V2.xml SPApplicationsDataType

ist dann doch ein wenig einfacher.
 
Zurück
Oben Unten