2011-01-07 12 views
1

Ich habe eine Liste von Verzeichnisnamen in einer Textdatei. Ich möchte diese als Teil eines Dateiname-Befehls git-svn clone verwenden.Problem mit Unix-Pipe-Befehl

Dies druckt den Inhalt der Datei Zeile für Zeile aus.

cat repos_to_migrate.txt | tee $1 

jedoch funktioniert das nicht:

cat repos_to_migrate.txt | git svn clone file:///home/svn/$1 
... Unable to open repository 'file:///home/svn' ... 

Irgendwelche hier Ideen? Es ist wichtig, dass ich centos5 betreibe.

Antwort

1
(
    while read repo; do 
     git svn clone file:///home/svn/$repo 
    done 
) < repos_to_migrate.txt 
+0

Vielen Dank. Das funktioniert bisher großartig. Wenn ein Befehl fehlgeschlagen ist, wird das Skript korrekt fortgesetzt? – Keyo

+0

Wenn Sie meinen, dass eine der 'git svn clone'-Operationen fehlschlagen würde, dann würde ja mit der nächsten fortgefahren. – cdhowie

+0

Wenn Sie abbrechen möchten, statt bei einem Fehler fortzufahren, fügen Sie einfach 'set -e' in eine Zeile vor dem' while' ein. – ephemient