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

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

Re: [shell-script] retorno de comando para variavel - resolvido


From: Kleyton Maia
Subject: Re: [shell-script] retorno de comando para variavel - resolvido
Date: Fri, 25 Nov 2016 17:13:57 +0000 (UTC)

Pessoal Obrigado pela ajuda consegui,

Ajustando o awk que o Paulo Passou ficou da seguinte forma:

Para trazer o primeiro nome:
unomebanco=$("$dlc" "$1"/"$banco" -C list |awk -F " " '{print $8" "$6" "$1}'|grep -v tty|sort | grep $nome | awk -F " " ' $nome {print $1 ;exit}')

Para trazer o primeiro código:
ucodigo=$("$dlc" "$1"/"$banco" -C list |awk -F " " '{print $8" "$6" "$1}'|grep -v tty|sort | grep $nome | awk -F " " ' $nome {print $3 ;exit}')
 
_________________
Cordialmente;

Kleyton Maia


De: "address@hidden [shell-script]" <address@hidden>
Para: address@hidden
Enviadas: Sexta-feira, 25 de Novembro de 2016 14:37
Assunto: Re: [shell-script] retorno de comando para variavel

 
Olá Kleyton, o campo $8 é o nome e o $1 é o código?
Veja se só com awk resolve
awk -F " " '/joanesetin/ {print $8" "$1";exit}'

Abraços Paulo

On 25-11-2016 14:09, Kleyton Maia address@hidden [shell-script] wrote:
>
>
> Pessoal pro nome deu certo dessa forma: (com o sort no final diogo)
>
>
> Porem para o codigo da conexão que vem na posição $3 do awk nao deu resultado com o sort-u ou sem vem os dois
> códigos ou seja a rotina se perde ainda :
>
> [root@mclaren ~]# /usr/dlc113/bin/proshut /bancos/Producao/totvs12/eai -C list |awk -F " " '{print $8" "$6"
> "$1}'|grep -v tty|sort | grep joanesetin |awk '{print $1}'| sort -u
> joanesetin
>
> [root@mclaren ~]# /usr/dlc113/bin/proshut /bancos/Producao/totvs12/eai -C list |awk -F " " '{print $8" "$6"
> "$1}'|grep -v tty|sort | grep joanesetin |awk '{print $3}'| sort -u
> 105
> 90
>
> Dai a rotina se perde e nao derruba ninguém ;(, alguma luz ?
>
> _________________
> Cordialmente;
>
> Kleyton Maia
>
> ----------------------------------------------------------
> *De:* "Diogo Aguiar address@hidden [shell-script]" <address@hidden>
> *Para:* address@hidden
> *Enviadas:* Sexta-feira, 25 de Novembro de 2016 13:59
> *Assunto:* Re: [shell-script] retorno de comando para variavel
>
>
> Kleyton.
>
> Fiz uns testes no banco progress que tenho internamente aqui na empresa e sugiro que coloque o sort no final
> /usr/dlc113/bin/proshut /bancos/Producao/totvs12/eai -C list |awk -F " " '{print $8" "$6" "$1}'|grep -v
> tty|sort | grep joao |awk '{print $1}'
> joao
> joao
>
> /usr/dlc113/bin/proshut /bancos/Producao/totvs12/eai -C list |awk -F " " '{print $8" "$6" "$1}'|grep -v tty |
> grep joao |awk '{print $1}'| sort -u
> joao
> joao
>
> n
>
> 2016-11-25 13:39 GMT-02:00 Kleyton Maia address@hidden <mailto:address@hidden>
> [shell-script] <address@hidden <mailto:address@hidden>>:
>
> __
>
> Boa tarde,
>
> Mestre julio entendi poderia ter explicado melhor me desculpe, é o segundo caso que como você escreveu:
>
> ele retorna assim:
>
> prompt$comando
> joao
> joao
> promptt$
>
>
> [root@mclaren ~]# /usr/dlc113/bin/proshut /bancos/Producao/totvs12/eai -C list |awk -F " " '{print $8"
> "$6" "$1}'|grep -v tty|sort | grep joao |awk '{print $1}'
> joao
> joao
> [root@mclaren ~]#
>
>
>
> Obrigado!
>
> _________________
> Cordialmente;
>
> Kleyton Maia
>
> ----------------------------------------------------------
> *De:* "'Julio C. Neves' address@hidden <mailto:address@hidden> [shell-script]"
> <address@hidden. br <mailto:address@hidden>>
> *Para:* "address@hidden. br <mailto:address@hidden>"
> <address@hidden. br <mailto:address@hidden>>
> *Enviadas:* Sexta-feira, 25 de Novembro de 2016 11:41
> *Assunto:* Re: [shell-script] retorno de comando para variavel
>
>
> Mande um exemplo completo de retorno para podermos avaliar a resposta.
>
> Se vc tem, como diz, "joa joao", é mais complicado, mas se vc tem "joao joao" é mole:
>
> $ echo joao joao | tr ' ' '\n' | sort | uniq
> joao
>
> Mas se sua saída for:
> joao
> joao
>
> Nem precisa do tr, mas se for joao da silva joao da silva, complica.
>
> Como vc vê, cada caso é um caso. Então sem um exemplo real, fica difícil
>
>
> Abcs,
> Julio
> *@juliobash*
> *
> Próximos cursos de Shell*
> *Cidade LocalPeríodo*
> **
> ​
> *São Paulo 4Linux <https://www.4linux.com.br/curso/programacao-em-shell-script>05*
> *-09/12*
> **
> Dou treinamento de /Shell/em qualquer cidade.
> Para mais detalhes, me mande um e-mail <mailto:address@hidden>.
>
>
> 2016-11-25 11:20 GMT-02:00 Kleyton Maia address@hidden <mailto:address@hidden>
> [shell-script] <address@hidden. br <mailto:address@hidden>>:
>
> __
>
> Bom dia ,
>
> Pessoal tenho um script que derruba usuários do banco progress em linux,
> Ele funciona corretamente para 01 conexão. Porem por vezes quando o usuário tem mais de 01 conexão
> esse comando me retorna o nome do usuário duas vezes e com isso ele não derruba ninguém... pois fica
> "joa joao" que é diferente de "joao"
>
> Ex:
> dlc= comando para derrubar
> banco = nome do banco
> nome = nome do usuario que digitou
>
> unomebanco=$("$dlc" "$1"/"$banco" -C list |awk -F " " '{print $8" "$6" "$1}'|grep -v tty|sort | grep
> $nome |awk '{print $1}')
>
> A pergunta seria como fazer pra esse awk me retornar somente 01 nome e nao os dois que ele acha nas
> conexões ?
>
> Obrigado pela força.
>
> _________________
> Cordialmente;
>
> Kleyton Maia
>
>
>
>
>
>
>
>
> ----------------------------------------------------------
> Enviado por: Kleyton Maia <address@hidden>
> ----------------------------------------------------------



reply via email to

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