shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Array mais lento do que "-f $aquivo"


From: Eri Ramos Bastos
Subject: Re: [shell-script] Array mais lento do que "-f $aquivo"
Date: Fri, 26 Oct 2018 08:29:26 -0300

Talvez, hein? Vou testar depois :D

Obrigado.

On Fri, Oct 26, 2018 at 7:35 AM Renato Guth de Paiva address@hidden [shell-script] <address@hidden> wrote:


Sou novo no shell e não sei se entendi direito seu script. Posso estar falando besteira, mas não seria mais simples apenas testar a existência do arquivo com o comando 
check_role() {
test -f /etc/roles/$1
}


Em qua, 24 de out de 2018 às 11:41, Eri Ramos Bastos address@hidden [shell-script] <address@hidden> escreveu:
 

Olá, lista!

Tenho um script que roda a seguinte função ~300 vezes (sourced de outro arquivo):

check_role() {
if [ -d /etc/roles/ ]; then
if [ -f /etc/roles/$1 ]; then
return 0
fi
fi
return 1
}

Pensei que iria ganhar performance fazendo isso:

list_roles() {
if [ -d /etc/roles/ ]; then
cd /etc/roles
ls
else
echo ""
fi

}

export ROLES=($(list_roles))
check_role() {
local role=$1
for r in "${ROLES[@]}"; do
[[ "$r" == "$role" ]] && return 0
done
return 1

}

Mas na verdade o tempo de execução piorou:

Original:
real    0m2.069s 
user    0m0.300s 
sys     0m1.644s

Novo:
real    0m2.857s
user    0m0.348s
sys     0m2.296s


Me parece contra-intuitivo, já que o original precisa checar em disco todas as vezes. Onde estou errado?

Obrigado!




reply via email to

[Prev in Thread] Current Thread [Next in Thread]