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

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

Erro sed sript


From: Bruno Romano Muller
Subject: Erro sed sript
Date: Tue, 3 Nov 2009 12:58:28 -0200

Ola a todos.

Estou fazendo um script que faz build do meu projeto e cria os pacote rpm e 
deb, para isso eu tenho que ter alguns arquivos, como o control para gerar o 
.deb e o .spec para gerar meu pacote rpm, e mais alguns scripts da minha 
aplicaçao como o instalador e o script que fica em /etc/init.d/. Mas preciso 
modificar constantemente esses scripts, so alguns valores, e para evitar de 
ficar alterando toda vez esses arquivos ou gerar o build com arquivos errados 
eu criei esses arquivos e no lugar dos valores, contem mascaras que meu script 
de build vai substituir, assim fazendo o build correto e facilitando a troca 
desses valores.

Meu maior problema esta com o sed, funciona normal e legal todo meu build e 
substituiçao de mascaras mas o sed falha quando preciso substituir um local 
(/etc/prog/exec) ou alguma coisa com espaços(meu prog faz isso e aquilo). Ja 
tentei de varias maneiras com "\" com aspas simples, duplas, simples e duplas. 
jogar tudo para dentro de uma variavel e depois executar essa variavel e nada. 
Mas preciso que os valores venham de enviromnent, se puderem me ajudar. Acho 
que o problema eh somente com a sintaxe que eu nao manjo. 

segue a funcao que faz esse processo de substituicao.

Nao so muito bom com shell script se puderem me ajudar agradeco.
O nome do programa pode variar de vez em quando.


(meu teclado esta desconfigurado, desculpem a falta de acento)
setup_prog()
{
    count=1
    file=$(echo "${FILES_REPLACE}" | cut -d ":" -f${count})
  
    while [ "${file}" != "" ]
    do
        count_replace=1
        str_aux=$(echo "${VARIABLES_REPLACE}" | cut -d ":" -f${count_replace})
      
       cp "${file}" "${file}_bck"
        while [ "${str_aux}" != "" ]
        do
            str=$(echo "${str_aux}" | cut -d '*' -f1)
            replace=$(echo "${str_aux}" | cut -d '*' -f2)
            sed -e 's/'${str}'/'${!replace}'/g' "${file}" > "${file}_TEMP" # 
<<--- Aqui meu problema
            mv "${file}_TEMP" "${file}"
          
            count_replace=$(expr ${count_replace} + 1)
            str_aux=$(echo "${VARIABLES_REPLACE}" | cut -d ":" 
-f${count_replace})
        done
        mv "${file}" "${file}_${PROG_NAME}"
        mv "${file}_bck" "${file}"
      
        count=$(expr ${count} + 1)
        file=$(echo "${FILES_REPLACE}" | cut -d ":" -f${count})      
    done
}

Att: Bruno Romano


reply via email to

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