Acontece que não havia pensado no pequeno detalhe que se segue:
1 function GetPictures() {
2 local gallery=$1
3 if [[ $(ls $gallery) =~ .*[.](png|jpg) ]]; then
4 echo ${BASH_REMATCH[@]}
5 fi
6 }
7
8 function GetGallery() {
9 if ! [[ -e ${HOME}/.config/user-dirs.dirs ]]; then
10 Exeption 1
11 else
12 cat ${HOME}/.config/user-dirs.dirs | \
13 grep --color=never "XDG_PICTURES_DIR=" | \
14 cut -f2 -d=
15 fi
16 }
17
18 function SetWallpaper() {
19 local pictures=("$(GetPictures $(GetGallery))")
20 if [[ ${#pictures[@]} -ne 0 ]]; then
21 feh --bg-fill "$(getGallery)/${pictures[0]}"
22 fi
23 }
Estou adaptando um de meus scripts cujos blocos acima tem como função, meramente, definir o plano de fundo para máquina. O problema e que a função GetGallery (L3) retorna uma string e não um path, oque resulta em...
ls: não foi possível acessar '"$HOME/Imagens"': Arquivo ou diretório inexistente
.
Não sei muito bem como resolver esse problema sem ter que refazer grande parte do código. Adoraria receber algumas sugestões.
P.S. Não sei se todo o resto do código funciona. Modifiquei bastante o original e esse pode ser apenas um dos erros de lógica : ]