2017-08-09 12 views
0

Ich muss eine CSV-Datei mit bash auslesen. Aber meine Schleife wird nach 1 Iteration beendet.While-Schleife stoppt nach 1 Iteration [BASH]

Code:

function readCSVFile() { 
input="bitbucket-repositories.csv"; 
OLDIFS=$IFS 
IFS="," 
while read repo tool folder; 
do 
    cd websites || exit 
    cloneRepo $repo 
    checkRepo 
    cd ../ || exit 0 
    checkTool -> calls another script (../script.bash) -> no ssh 
    countCSVLines 
done < $input 
IFS=$OLDIFS 

} 
+0

try Ihre Ausfahrt durch 'Echo value' zu ​​ersetzen. Vielleicht bist du aus irgendeinem Grund aufregend. – Aif

+0

Das Ganze läuft, also ist das nicht das Problem, denke ich. –

Antwort

1

Welche der benutzerdefinierten Kommandos von stdin lesen? Einer von ihnen verbraucht den Rest der Eingabedatei.

Versuchen Sie eine andere Dateideskriptor für die bei der Verwendung von Leseschleife:

while read -r -u3 repo tool folder; do ... done 3< "$input" 
+0

Ein bisschen Fortschritt mit diesem! Aber was genau macht "-u3"? –

+0

, die aus Dateideskriptor 3 statt der Standard 0 (Stdin) liest. Geben Sie bei einer interaktiven Bash-Eingabeaufforderung 'help read' ein –

Verwandte Themen