2016-12-14 2 views
6

Я создаю скрипт bash, используя диалог. Мой скрипт делает разницу между файлами в двух tar.gz. Каждый файл добавляется в массив, и каждый файл удаления помещается в другой массив.Как эхо все значения из массива в bash

Все файлы добавить в моем два массива и когда я хочу повторить их, это работает

echo ${tabAjout[@]} 
echo ${tabSuppr[@]} 

Выход есть:

bonjour.txt.gpg test2.txt.gpg test.txt.gpg 
hello.txt.gpg 

Теперь я хочу добавить это в MsgBox.

function affiche_message(){ 
    #Personnalisation de la fenêtre 
    $DIALOG --title "$1" \ 
      --msgbox "$2" 20 45 
} 

Вызов функции:

affiche_message "Title" "Delete : ${tabSuppr[@]} \n\n Add : ${tabAjout[@]}" 

Когда я бегу мой сценарий MsgBox содержит только первые значения массива. Если я изменил $ {tabAjout [@]} на $ {# tabAjout [@]}, диалоговые окна будут отображать эхо, что массив содержит 3 значения.

ответ

14

Использование * в качестве индекса для расширения массива в качестве одного слова:

"${tabSuppr[*]}" 

См man bash для объяснения.

+0

Большое спасибо за работу – Mattasse