Ich muss die Dateien von einem Ordner in einen anderen kopieren, hier befinden sich Quell- und Zielinformationen in der Textdatei.
Dateiinhalt: res.txt
/ var / lib / jenkins / jobs / Android \ Gradle \ test \ build / workspace / Hauptanwendung / app / src / main / res / drawable-hdpi / logo_splash.png = / var / lib / jenkins / jobs / Android \ Gradle \ test \ build / workspace / mainapp / app / src / main / res / drawable / logo_splash.png
Hier versuche ich, den String mit dem Trennzeichen "=" zu teilen und den jeweiligen Variablen zuzuordnen. Und müssen den Kopierbefehl auslösen.
Um dies zu erreichen, versuche ich, den String in ein Array aufzuteilen und den lokalen Variablen den Wert des Array-Indexelements zuzuweisen
lines=/var/lib/jenkins/jobs/Android\ Gradle\ test\ build/workspace/MainApp/app/src/main/res/drawable-hdpi/logo_splash.png=/var/lib/jenkins/jobs/Android\ Gradle\ test\ build/workspace/MainApp/app/src/main/res/drawable/logo_splash.png
SOURCE=""
DEST=""
echo $lines | awk '{split($0,numbers,"=")} END {
for(n in numbers){
if (n == 1) {
SOURCE = ${numbers[1]}
}
else if (n == 2) {
DEST= ${numbers[2]}
}
}}'
echo ${numbers[1]}
echo ${numbers[2]}
Fehler erhalten als
awk: {split($0,numbers,"=")} END {for(n in numbers){ SOURCE = ${numbers[1]}}
awk: ^ syntax error
und für Echo Ausgabe erhalten als
+ echo
+ echo
@Gombai Sandor, ich habe das oben genannte wie von dir vorgeschlagen geändert und es funktioniert.
SOURCE=$(echo $lines | awk -F= '{print $1}')
echo "source is " $SOURCE
DESTINATION=$(echo $lines | awk -F= '{print $2}')
echo "destination is " $DESTINATION