Мне нужно скопировать файлы из одной папки в другую, здесь информация об источнике и месте назначения находится в текстовом файле.
Содержание файла: res.txt
/ 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
Здесь я пытаюсь разбить строку с разделителем "=" и присвоить ее соответствующим переменным. И, нужно вызвать команду копирования.
Чтобы выполнить вышеизложенное, я пытаюсь разбить строку на массив и присвоить значение элемента индекса массива локальным переменным
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]}
получать ошибку как
awk: {split($0,numbers,"=")} END {for(n in numbers){ SOURCE = ${numbers[1]}}
awk: ^ syntax error
и для эха
+ echo
+ echo
@Gombai Sandor, я изменил вышесказанное, как вы предложили, и это работает.
SOURCE=$(echo $lines | awk -F= '{print $1}')
echo "source is " $SOURCE
DESTINATION=$(echo $lines | awk -F= '{print $2}')
echo "destination is " $DESTINATION