Syntaxfehler in der Nähe unerwartetes token `do'

Ich versuche zu konvertieren .bat-Datei in .sh-Datei hier ist mein code-Zeilen

#!/bin/sh
./setenv.sh
export _LIBJARS=for i in [$XYZ_HOME$/lib/*.jar];do source $XYZ_HOME$/bin/append.bat i
export CLASSPATH=$ANT_HOME$/lib/ant.jar;$_LIBJARS$$ANT_HOME$/bin/ant -buildfile $XYZ_HOME$/build.xml $1 $2 $3 $4

Nach dem schreiben dieser Zeile, die ich schrieb chmod 755 ./build.sh
dann schrieb ich ./build.sh test-deploy

Ich erhalte die folgende Fehlermeldung:

./build.sh: line 3: syntax error near unexpected token `do'
./build.sh: line 3: `export _LIBJARS=for i in [$XYZ_HOME$/lib/*.jar];do source $XYZ_HOME$/bin/append.bat i'

Meine .Bat-Datei ist wie

call setenv.bat

set _LIBJARS=
for %%i in (%XYZ_HOME%\lib\*.jar) do call %XYZ_HOME%\bin\append.bat %%i

set CLASSPATH=%ANT_HOME%\lib\ant.jar;%_LIBJARS%

%ANT_HOME%\bin\ant -buildfile %XYZ_HOME%\build.xml %1 %2 %3 %4

Oder jede tutorial zu verstehen, die Zeilen von code oder im Zusammenhang mit shell-und bash-Datei bitte schlagen Sie mich.

  • vielleicht export _LIBJARS=$(for ....). Ich kann nicht verstehen, was möchten Sie tun in der 3. Zeile... Es scheint, Sie wollen in _LIBJARS die Ausgabe der bat-Dateien.
  • Sir, wenn ich das weglasse wird das Semikolon bekomme ich die Fehlermeldung wie folgt ./build.sh: Zeile 3: export: [$/lib/*.jar]do': not a valid identifier ./build.sh: line 3: export: $/bin/Anhängen.bat': not a valid identifier
  • 1 Shell-Variablen nicht geschrieben werden, mit einem $ am Ende. 2 source [...].bat sieht aus wie ärger, 3 @Hastur ist wohl richtig, und auch einen done. 4, Die for-Schleife ist falsch in so vieler Hinsicht, vielleicht sollten Sie beginnen, mit einem shell - /Bash-tutorial.
  • Warum müssen Sie source Ihre bat-Datei? Es ist nicht genug, um es auszuführen? Wenn Sie source eines Skripts ist irgendwie, als ob Sie schreiben den code der Punkt des Skripts, wo Sie die Quelle. @Biffen stellen als Schwierigkeiten in diesem Punkt. Wir wissen nicht, wie Sie Anhängen.Fledermaus verhält, und wenn es braucht, um starten Sie in eine neue shell.
InformationsquelleAutor Sumit Patel | 2014-07-11
Schreibe einen Kommentar