AprendiNoLinux
(usa Ubuntu)
Enviado em 26/04/2012 - 17:01h
juniorxt escreveu:
Cara ainda nao consegui sera que nao tem como fazer como nosso amigo foxbit3r fez ai? tem algum exemplo?
Veja que ele gera cada arquivo igual você pediu lá no início e coloca 2 campos dentro que está sendo enviado via parâmetro.
A partir de agora voce poderá adicionar o que quiser na matriz. Basta passar via parâmetro na função e ajustar.
Gera 1 arquivo de cada xml como você pediu. Gera EXATAMENTE no formato que você pediu rsrs.,
Existem muitas formas de fazer. O legal é que este caso vai ficar de exemplo.
Espero que agora consiga resolver sua pendência, ;)
[code]
#!/bin/bash
# Script.......: matriz_scriptbackup.sh
# name.........: Gera arquivo texto com matriz de xmal
# Author.......: @juniorxt
# Co-Authores..: Geraldo T. Albuquerque aka @AprendiNoLinux
# Employees....: @.ronin , @fdmarp ,
# charset......: UTF-8
# endofline....: Linux
# since........: 2012-04-26 15:13 (GMT -03:00)
# license......: GPL 3
# system.......: GNU bash, version 3.x
# version......: alfa 0.1
# more.........: Para disparar depois os arquivos é só fazer um while.
function mx_cpfcelular()
{
# Estou passando 3 parâmetros para a função/matriz.
# param1 = 1º campo do arquivo de teste.
# param2 = 2º campo do arquivo de teste.
# param3 = Nome de arquivo com prefixo + nanosegundos.
local lc_cpf="$1" lc_fone="$2" lc_arq_saida="$3"
local m_1 m_2 m_3 m_4 m_5 m_6 m_7 m_8 m_9 m_10
local m_11 m_12 m_13 m_14 m_15 m_16 m_17 m_18 m_19 m_20
local m_21 m_22 m_23 m_24 m_25 m_26 m_27 m_28 m_29 m_30
m_1='ENDPOINT="http://www.site.com/site.asmx?"'
m_2='if [ "$1" = "xxx.xxx.xxx" ]; then'
m_3=' echo "IP"'
m_4=' exit 0'
m_5='fi'
m_6=' '
m_7='curl --silent \'
m_8='--data \'
m_9='@- \'
m_10='--header ''Content-Type: application/soap+xml; charset=utf-8'' \ --user-agent "" \'
m_11='${ENDPOINT} <<EOF | xmllint --format -'
m_12='<soap:Envelope xmlns:soap="http://www.xxx/xxxx/">'
m_13='<soap:Header>'
m_14='<soap:Body>'
m_15='<v1:envia>'
m_16='<v1:cpf>'$lc_cpf'</v1:cpf>'
m_17='<v1:telefone>'$lc_fone'</v1:telefone>'
m_18='<v1:fecha>teste</v1:fecha>'
m_19='<v1:fecha2>teste</v1:fecha2>'
m_20='</v1:envia>'
m_21='</soap:Body>'
m_22='</soap:Envelope>'
m_23='EOF'
m_24='EXIT 99;'
echo "${m_1}" > $lc_arq_saida
echo "${m_2}" >> ${lc_arq_saida}
echo "${m_3}" >> ${lc_arq_saida}
echo "${m_4}" >> ${lc_arq_saida}
echo "${m_5}" >> ${lc_arq_saida}
echo "${m_6}" >> ${lc_arq_saida}
echo "${m_7}" >> ${lc_arq_saida}
echo "${m_8}" >> ${lc_arq_saida}
echo "${m_9}" >> ${lc_arq_saida}
echo "${m_10}" >> ${lc_arq_saida}
echo "${m_11}" >> $lc_arq_saida
echo "${m_12}" >> ${lc_arq_saida}
echo "${m_13}" >> ${lc_arq_saida}
echo "${m_14}" >> ${lc_arq_saida}
echo "${m_15}" >> ${lc_arq_saida}
echo "${m_16}" >> ${lc_arq_saida}
echo "${m_17}" >> ${lc_arq_saida}
echo "${m_18}" >> ${lc_arq_saida}
echo "${m_19}" >> ${lc_arq_saida}
echo "${m_20}" >> ${lc_arq_saida}
echo "${m_21}" >> $lc_arq_saida
echo "${m_22}" >> ${lc_arq_saida}
echo "${m_23}" >> ${lc_arq_saida}
echo "${m_24}" >> ${lc_arq_saida}
}
# Fim da função.
# Chamei o arquivo de testes como: cpfcelular.txt
# Conteúdo segue abaixo:
#01128648749 01174922047
#02733297940 02799047042
#01332840811 01388458409
#01145343578 01168425878
#02133944108 02197343445
lc_linha=
# Os arquivos irão para o diretório tmp no raiz.
local_destino="/tmp"
# No while vai correr todas as linhas do cpfcelular.txt
while read lc_linha ; do
lc_campo1=$(echo "$lc_linha" | cut -f1 -d" ")
lc_campo2=$(echo "$lc_linha" | cut -f2 -d" ")
Arq_Sai="${local_destino}/matriz_xml_$(date +%N).txt"
mx_cpfcelular "${lc_campo1}" "${lc_campo2}" "${Arq_Sai}"
done < cpfcelular.txt
exit
[/quote]