2016-07-24 5 views
0

Variable $ adsQ ist eine Ausgabe von sql. Diese Variable hat eine Zeilenanzahl im Matrixformat. Wenn ich diese Variable mit der Pipe zur while-Schleife übergebe, funktioniert es gut, während ich die Variable verliere, die von der while-Schleife benötigt wird. Wie aus anderen Foren vorgeschlagen, ich mit folgenden modifiziertenBash - While-Schleife - Variable ist außerhalb der Schleife nicht sichtbar

  varout='' 
      while IFS= read -r adrow; 
      do 
        <... do something....> 
        varout="$varout $adrow" 
      done < <(printf '%s\n' $adsQ) 
      echo "output of while $varout" 
      echo "AFTER adsVal >> $adsVal" 

, wenn ich das laufen, bekomme ich Fehler, der besagt

test.sh: Linie 72: Syntaxfehler in der Nähe von unerwartetem Token <' test.sh: line 72: getan < < (printf ‚% s \ n '$ adsQ)'

+3

Sie führen das Skript mit einer Shell aus, die keine Prozesssubstitution unterstützt, nicht 'bash'. – chepner

+0

Mit welcher Shell arbeiten Sie? – sjsam

Antwort

0

Sie haben eine fremde < in Ihrem Befehl. Sie haben geschrieben

done < <(...) 

Entfernen Sie die erste <.