Wie rufe ich ein Script mit übergabeParam aus einem anderen auf?

Michi0209 schrieb:
-rw-rw-rw- 1 Michael Michael 2395 Jun 30 11:15 svn_import.sh
Das dachte ich mir schon.:devil:
Fragt sich nur wie du das zu Fuß gestartet hast. :think:
Du kannst es natürlich mit dem Interpreter aufrufen, aber dann musst du das natürlich auch in deinem Script so realisieren.
/bin/bash script Parameter

Gruß Wolfgang
 
*seufz*

Wenigstens hat Deutschland das Spiel gewonnen...

Sorry, OT

Gruß
 
Hallo,

habe mir jetzt mal das Shell-Script Buch von Patrick Ditchen geholt und schon etwas drin rumgelesen....

Nun habe ich trotzdem noch eine Frage:

Ich habe ein Verzeichnis, darin enthalten sind sagen wir mal 4 Ordner:


  • Ordner 1
    Ordner 2
    Ordner 3
    Ordner 4


Wenn ich nun folgendes Aufrufe:

Code:
Pfad=$HOME/cw_source

for Ordner in $(find "$Pfad" -type d -maxdepth 1);do
	# svn_import.sh $Ordner
	echo "$Ordner"
done

erhalte ich als Ergebniss

/Users/Michael/cw_source
/Users/Michael/cw_source/Ordner
1
/Users/Michael/cw_source/Ordner
2
/Users/Michael/cw_source/Ordner
3
/Users/Michael/cw_source/Ordner
4


Wie bekomme ich es hin, Ordner zu finden, die nicht aus einem Wort bestehen, den ich glaube hier ist das Grundproblem!?

Danke
 
Schau Dir die "-print0" Option von find an sowie "xargs -0".

Gruss, Xanti
 
habe ich probiert, leider nicht mit dem Ergebniss das ich mir erhoft hatte:

Code:
for Ordner in $(find "$Pfad" -type d -maxdepth 1 -print0 );do
	# svn_import.sh $Ordner
	echo $Ordner

	Ordner= ;unset Ordner
done

ERGEBNISS:

/Users/Michael/cw_source/Users/Michael/cw_source/Ordner
1/Users/Michael/cw_source/Ordner
2/Users/Michael/cw_source/Ordner
3/Users/Michael/cw_source/Ordner
4
:(
 
Code:
find "$Pfad" -type d -maxdepth 1 -print0 | xargs -0 -n1 echo
 
Hallo, danke für deine Antwort, aber wenn ich das so eintrage wie du geschrieben hast bekomme ich folgendes Ergebniss:

Gefunden: /Users/Michael/cw_source
Gefunden: /Users/Michael/cw_source/Ordner
Gefunden: 1
Gefunden: /Users/Michael/cw_source/Ordner
Gefunden: 2
Gefunden: /Users/Michael/cw_source/Ordner
Gefunden: 3
Gefunden: /Users/Michael/cw_source/Ordner
Gefunden: 4


so der Code:
Code:
for Ordner in $(find "$Pfad" -type d -maxdepth 1 -print0 | xargs -0 -n1 );do
	# svn_import.sh $Ordner
	echo "Gefunden: $Ordner"
done

was mache ich da falsch?? ich verstehe das nicht?!?
 
find gibt mit der Option -print0 die Ergebnisse getrennt durch die ASCII-Null aus. xargs erkennt (mit der Option -0) diese Null als Seperator. Wenn Du das ganze in eine for-Schleife packst, ist der ganze Nutzen weg, weil for halt bei Leerzeichen trennt. Also trenn Dich von der Idee mit der for-Schleife (vielleicht geht's auch mit for, mir fällt da aber gerade nix ein, Wolfgang weiss es bestimmt) und arbeite nur mit find+xargs:

Code:
find "$Pfad" -type d -maxdepth 1 -print0 | xargs -0 -n1 svn_import.sh
 
Hallo

Versuch es mal so:
Code:
$  find . -iname "verz*" -print0|xargs -0 -n1|while read VERZ; do echo "$VERZ"; done
./verz
./verz 1
./verz 2
./verz 3

Gruß Wolfgang
 
Vielen dank für eure Antworten...

Habe es gestern Nacht so gelöst:

Code:
find "$Pfad" -type d -maxdepth 1 -print0 | xargs -0 -n1 > datei
line=1
cat datei | while read name; do
    	if [ $line -ne 1 ]; then 
		./svn_import "$name";
	fi
	line=2
done

Schreibe die komplette Verzeichnisstruktur in eine Datei die ich dann Zeile für Zeile abarbeite...

Scheint zu funktionieren :D
 
Ich vermute mal, dass Du die if-Schleife benötigst, damit "." nicht berücksichtigt wird. Das kann man mit -mindepth umgehen und Dein Skript reduziert sich auf:

Code:
find "$Pfad" -type d -maxdepth 1 -mindepth 1 -print0 | xargs -0 -n1 ./svn_import

Gruss, Xanti
 

Ähnliche Themen

Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql

Hilfe bei backup-script

perl script, das Dateien aus einer Liste löscht

Zeilenweise suchen, löschen und ersetzen / Inhalt einfügen

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Zurück
Oben