+ Responder ao Tópico



  1. #1

    Padrão pau no case

    kras

    to usando o case pra fazer a insercao d uma sintaxe em um arquivo...

    a script eh a seguinte:

    Código :
    # Chamar funcao usando:
    # addpath modulo path
    addpath ()
            {
                    case $1 in
                      zlib)         cat $dir.installpath | sed "s/:.*$//" > teste1 ; cat teste1 | sed "s#^$1#$1 :       $2#g" > teste ; cat teste > $dir.installpath;;
                      libpng)       cat $dir.installpath | sed "s/:.*$//" > teste1 ; cat teste1 | sed "s#^$1#$1 :       $2#g" > teste ; cat teste > $dir.installpath;;
                      libjpeg)      cat $dir.installpath | sed "s/:.*$//" > teste1 ; cat teste1 | sed "s#^$1#$1 :       $2#g" > teste ; cat teste > $dir.installpath;;
                      freetype)     cat $dir.installpath | sed "s/:.*$//" > teste1 ; cat teste1 | sed "s#^$1#$1 :       $2#g" > teste ; cat teste > $dir.installpath;;
                      gd)           cat $dir.installpath | sed "s/:.*$//" > teste1 ; cat teste1 | sed "s#^$1#$1 :       $2#g" > teste ; cat teste > $dir.installpath;;
                      mhash)        cat $dir.installpath | sed "s/:.*$//" > teste1 ; cat teste1 | sed "s#^$1#$1 :       $2#g" > teste ; cat teste > $dir.installpath;;
                      httpd)        cat $dir.installpath | sed "s/:.*$//" > teste1 ; cat teste1 | sed "s#^$1#$1 :       $2#g" > teste ; cat teste > $dir.installpath;;
                      php)          cat $dir.installpath | sed "s/:.*$//" > teste1 ; cat teste1 | sed "s#^$1#$1 :       $2#g" > teste ; cat teste > $dir.installpath;;
                    esac
            }

    ele insere blz, mas quando ele insere, sempre fica somente o ultimo valor inserido, e os outros saum apagados

    o q pode estar errado?

    []'s

  2. #2
    LenTu
    Visitante

    Padrão pau no case

    naum seria...

    >> teste

    pq com o

    > teste

    ele cria o arquivo novamente... apagando o q tinha... meu CHUTE eh esse... ops:

    :twisted:

  3. #3

    Padrão pau no case

    Eu te digo com certeza que é o redirecionador de IO (>).
    Utilize ">>" para append.

  4. #4

    Padrão pau no case

    pow... eu vou tentar, mas eh q na logica no negocio eu pensei assim:

    a cada modificacao eu pego o .installpath, copio ele pra teste, dae, eu acrescento o valor ao arquivo teste, e copio ele sobre o .installpath

    ele realmente sobrescreve, mas as alteracoes saum feitas da maneira correta, e as informacoes anteriores deveriam continuar... se nao, pq continuam as linhas em em q naum tem nenhum path na frente??

    hehee, eh esquisito....

    []'s

  5. #5
    felco
    Visitante

    Padrão pau no case

    eh isso mesmo

  6. #6

    Padrão pau no case

    testei, usando >> ele soh add as coisas, naum substitui como eu preciso...

    em qual parte da sintaxe eh o correto colocar as >>?

    []'s

  7. #7

  8. #8
    Visitante

    Padrão pau no case

    Todos, se não o proximo apaga o conteúdo do anterior...

    Fui,

  9. #9

    Padrão pau no case

    Citação Postado originalmente por Anonymous
    Todos, se não o proximo apaga o conteúdo do anterior...

    Fui,
    eu tentei colocando em tdos, mas ele coloca o registro varias vezes, pq eh append... o q eu quero eh substituir...

    mas mesmo assim, valeu!

  10. #10

    Padrão Re: pau no case

    Citação Postado originalmente por demiurgo
    Código :
    # Chamar funcao usando:
    # addpath modulo path
    addpath ()
            {
                    case $1 in
                      zlib)         cat $dir.installpath | sed "s/:.*$//" > teste1 ; cat teste1 | sed "s#^$1#$1 :       $2#g" > teste ; cat teste > $dir.installpath;;
    ...
    falae demiurgo...num sei se eu entendi bem mas vc podia tentar fazer assim:

    Código :
    # Chamar funcao usando:
    # addpath modulo path
    addpath ()
            {
                    case $1 in
                      zlib)         cat $dir.installpath | sed "s/:.*$//" | sed "s#^$1#$1 :       $2#g" > $dir.installpath;;
    ...

    ao inves de criar uma porrada de arquivo temporario, tenta ler ele, editar no sed pipelineando ele e depois ja tacar direto no proprio arquivo...num custa nada tentar....

  11. #11

    Padrão pau no case

    vou testar lah

    valeu SDM!

    []'s