Code:fldr="./././Projekte"; # Zielordner definieren IFS=$'\n'; # Shellinterne Trennzeichen "Space" und "Tab" # deaktivieren. Diese kommen häufig in Dateinamen # vor und stören beim folgenden Kommando. list=( $(find -x "$fldr" -type f -depth 2 -iname '*.xcodeproj' 2>/dev/null) ); # Nach den Projektdateien suchen. # Im Zielordner und in allen direkten Unterordnern # (Suchtiefe 2) # Die als einzelne Zeilen präsentierten Ergebnisse werden # in Einzelworte getrennt, da das gesamte Kommando nicht # in Anführungszeichen gekapselt ist. Da jetzt aber nur noch das # Trennzeichen "newline" aktiv ist, wird nur noch dort getrennt # und jede volle Ergebniszeile wird zu einem einzelnen "Word". # (Spaces werden als normale Zeichen erkannt und splitten den Text nicht mehr) # # Das Resultat (die einzelnen Zeilen) werden als # Elemente der Array-Variablen "list[]" zugewiesen. # Schema: name=( "X1" "X2" "X3" "X4" "Xn" ) IFS=$' \t\n'; # Feldtrenner Standardeinstellung wiederherstellen. # "Space-Tab-Newline" (Der Standard für "Whitespace") for ((x=0;x<${#list[*]};x++)); do # for ((...;...;...)) # Zählschleife starten. Details: # # for ((x=0;...;...)) # Erster Durchlauf mit Startwert für x=0 # # for ((...;x<${#list[*]};...)) # Schleifeninhalt ausführen, solange x kleiner als # die Anzahl der Elemente in der oben definierten # Feldvariable "list[]" bleibt. Feldvariablen werden # indiziert ab Element 0, "x" dient also gleichzeitig # als Zeiger auf das richtige Element. # # for ((...;...;x++)) # Nach jedem Scheifendurchlauf "x" um eins erhöhen list[x]="$( dirname "${list[x]}" )"; # Für Element "x" des Feldes "list[]" den abschliessenden # Dateinamen entfernen. list[x]="$( basename "${list[x]}" )"; # Für Element "x" des Feldes "list[]" den Pfad # bis zum letzten Slash entfernen. # Ergebnis beider Aktionen: Der nackte Ordnername done; # Zählschleife schliessen select item in "${list[@]}"; do # Numeriertes Auswahlmenü zeigen (select...) # Die Elemente des Menüs sind alle Elemente von list[] # separiert durch Leerzeichen. Das eigentlich ausgeführte # Kommando lautet also beispielsweise: # select item in "Projekt 1" "Projekt 2" "Projekt 3"; do # Details zu "select" unter "man bash" echo $REPLY "$item"; # "$REPLY" enthält die bei "select" eingegebene Antwort (die Zahl) # "$item" wurde der Inhalt des dazugehörigen Elements zugewiesen done; # "select" abschliessen
Ergebnis 1 bis 3 von 3
- 16.08.2010, 13:24 #1Boskop
Themenstarter
- Registriert
- 12.2009
- Ort
- Sowas hab ich nich
- Alter
- 19
- Beiträge
- 204
Terminal Ordner mit *.xcodeproj Datei anzeigen
Hey,
Ich bin gerade dabei ein kleines Script zu verbessern, das ich mal geschrieben hatte. Und zwar möchte ich eine Auswahl von XCode Projekten angezeigt bekommen. Meine Projekte sind nach dem Schema gespeichert:
Ich möchte in dem Programm eine Auswahl angezeigt bekommen, etwas so:Code:~/Documents/Projekte/$Projektname/$Projektname.xcodeproj
Um das zu realisieren habe ich mich mal mit dem find Befehl auseinander gesetzt. So weit bin ich gekommen:Code:Verfügbare Projekte: 1. Tetribble 2. BlurWindow 3. Würfel
Aber irgendwie will überhaupt nichts funktionieren. Die Nummerierung funktioniert nicht, genausowenig wie das if (was außerhalb von find komischerweise funktioniert) auch werden alle Unterverzeichnisse durchsucht obwohl ich nur in der 1. Verzeichnisebene bleiben möchte.Code:#!/bin/sh cd Projekte x=0 find . -type d -name '*' -exec x=$x+1; if [ -e "{}/*.xcodeproj" ] then echo "$x {}" fi \;
Wäre echt nett, wenn mir da jemand helfen könnte iPhone 3GS 16GB
MacBook Pro 13" (Mid '09)
- 16.08.2010, 14:27 #2
Geändert von Rastafari (17.08.2010 um 14:25 Uhr)
- 17.08.2010, 09:31 #3Boskop
Themenstarter
- Registriert
- 12.2009
- Ort
- Sowas hab ich nich
- Alter
- 19
- Beiträge
- 204
Okay...das sieht schon komplizierter aus! Vielen dank, aber meinst du, du könntest es noch ein wenig erläutern?
iPhone 3GS 16GB
MacBook Pro 13" (Mid '09)


Zitieren
