LINUX.ORG.RU
решено ФорумAdmin

Правильный вывод элементов массива

 


0

1

Всем привет!!! Есть скрипт:

#!/bin/bash

FArray=(
'aaa'
'bbb'
'ccc'
)

function BackUp 
{
FileName= echo $1
echo -e "$HOME/Downloads/$FileName\c"
}

for i in "${FArray[@]}"
do
BackUp "$i"
done

На выводе:

adminic@WEB-PC1:~$ ./BackupF
aaa
/home/adminic/Downloads/bbb
/home/adminic/Downloads/ccc
/home/adminic/Downloads/adminic@WEB-PC1:~$

Как сделать что бы последняя строка была в «правильном месте» (то есть - в начале!!!) ???

Что б вывод был:

/home/adminic/Downloads/aaa
/home/adminic/Downloads/bbb
/home/adminic/Downloads/ccc


Ответ на: комментарий от anc

Это был только пример, реальный код «сложнее»(

function BackUp 
{
FileName= echo $1 | sed -e 's|.*/||' -e s/-/' '/g -e 's/$/.pic/'
echo -e "$HOME/Downloads/$FileName\c"
}

dim4k
() автор топика
Последнее исправление: dim4k (всего исправлений: 1)

Присвоение значений: пробелы не нужны (FileName= echo $1) почитайте

FArray=(aaa bbb ccc)

function BackUp
{
FileName=$1
echo "$HOME/Downloads/$1"
}


for i in "${FArray[@]}"
do
BackUp "$i"
done

exit 0
oS_a
()
Ответ на: комментарий от xaizek

Если в «$HOME/Downloads/$FileName\c» Убираем \с - вывод идеален!!! xaizek - Вы решили эту задачу!!! Спасибо!!!

dim4k
() автор топика
Последнее исправление: dim4k (всего исправлений: 1)
Ответ на: комментарий от dim4k

Еще пробел - это первоочередное. Попробуйте еще shellcheck поиспользовать.

oS_a
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.