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

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

Re: arrays -- foreach


From: oteb_04
Subject: Re: arrays -- foreach
Date: Sun, 23 Apr 2006 17:10:00 -0000
User-agent: eGroups-EW/0.82

> >  Terminei a quarta com uma dúvida de porque isso não funciona:
> > echo -e ${x1[*]//%//$gs_defaults/$(wmaker)\\\n}| sh
> >
> >  o resultado:
> > sh: line 1: apply_fix: command not found
> > sh: line 2: apply_fix: command not found
> > sh: line 3: apply_fix: command not found
> > sh: line 4: apply_fix: command not found
> 
>    Essa e' facil, apply_fix e' uma funcao local e existe nomente na  
> instancia atual do sh(bash),
> quando vc fez um pipe |sh mando executar 
> echo "apply_fix /home/ricardo2/Defaults/WMState apply_fix  
> /home/ricardo2/Defaults/WMWindowAttributes apply_fix  
> /home/ricardo2/Defaults/WindowMaker" |sh e e' obvio que em seu  
> /etc/profile vc nao tem essa funcao, pra fazer isso funcionar vc
deveria  
> passas os diretorio
> atraves de um for ou while para a funcao tratar, dessa forma td fica
local.
  
 Sobre a "instância atual do sh" tudo bem, mas eu não chegava até o
/etc/profile. Obrigado!
 
> > for ((i=0;i<${#x1[*]};i++))
> > do
> >         for f in wmaker wmstate wmpref
> >         do
> >                 $(echo -e ${x1[$i]//%//$gs_defaults/$($f)}) # | sed
> > "s#^#apply_fix #g;/ $/d" )
> >                 #apply_fix ${gs_system_defaults}/$($f)
> >         done
> > done
> 
> for _dir in ${x[@]};do
>          for f in wmaker wmstate wmpref;do
>                  apply_fix  ${_dir//%//$gs_defaults/$($f)}
>          done
> done
> 
> 
>      Eu achei essa forma muito mais legivel, nos scripts que faco acho  
> importantes tomar cuidado
> com substituicoes do tipo  ${_dir//%//$gs_defaults/$($f)}, normalmente  
> isso dificulta a leitura,
> eu sempre declaro novas variaveis com o conteudo da modificacao oq vai  
> ajudar alguem a ler e entender.
> 

 É, um scritp de fácil leitura é uma boa prática de programação. Mesmo
que aconteça de alguma perda de velocidade.

 Obrigado pela atenção!


 []
 hpfn





reply via email to

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