Пишу скрипт для резервного копирования.
В нем есть функция с помощью tar делающая архив.
Есть 3 вида архивов. В двух из них есть исключаемые папки. В одном нет.
Пути которые нужно архивировать и исключаемые папки передаются с помощью ссылок на массивы из основного скрипта.
Проблема в том, что в третьем варианте, когда исключаемых папок нет, скрипт прерывается.
Вывод bash -x показывает, что к tar добавляется пустая строка и это так понимаю причина. Подскажите, как это исправить?
Пример скрипта:
#!/bin/bash
function backup() {
local include=("${!1}")
local exclude=("${!2}")
tar -cvpzPf /home/backup/backup.tar.gz "${include[@]}" "${exclude[@]}"
}
case "$1" in
1)
include=(/foo2 /foo3)
exclude=(/bar2 /bar3)
backup include[@] exclude[@]
;;
2)
include=(/foo /foo1)
exclude=(/bar /bar1)
backup include[@] exclude[@]
;;
3)
include=(/etc /sbin)
backup include[@]
;;
esac
Пример схематичный, но общую суть показывает