[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