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

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

Re: [shell-script] Arquivo em formato de parâmetro


From: Tiago Peczenyj
Subject: Re: [shell-script] Arquivo em formato de parâmetro
Date: Thu, 16 Aug 2018 21:44:09 +0200

Tente assim :

script.sh <( echo “foo” )

Em qui, 16/08/2018 às 21:34, Sandro Gambini address@hidden [shell-script] <address@hidden> escreveu:
 

Boa tarde Tiago,

não funcionou.

Para testar o conceito fiz um script que lê um arquivo com algumas URL's e faz um ping em cada endereço, depois imprime o parâmetro 2:

#!/bin/bash

if [ $# -lt 2 ]; then
    echo "Falta parâmetro"
    exit 1
fi

cat $1
for x in `cat $1`; do
    ping -c1 $x
done
echo $2

[sagetr1@servsage1 simul]$ ./programa.sh ips teste
192.168.88.1
google.com.br
uol.com.br
ubuntu.com
PING 192.168.88.1 (192.168.88.1) 56(84) bytes of data.
64 bytes from 192.168.88.1: icmp_seq=1 ttl=64 time=11.0 ms

--- 192.168.88.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 11.078/11.078/11.078/0.000 ms
PING google.com.br (172.217.29.163) 56(84) bytes of data.
64 bytes from gru10s02-in-f163.1e100.net (172.217.29.163): icmp_seq=1 ttl=50 time=15.0 ms

--- google.com.br ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 15.089/15.089/15.089/0.000 ms
PING uol.com.br (200.221.2.45) 56(84) bytes of data.
64 bytes from home.uol.com.br (200.221.2.45): icmp_seq=1 ttl=244 time=22.0 ms

--- uol.com.br ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 22.068/22.068/22.068/0.000 ms
PING ubuntu.com (91.189.94.40) 56(84) bytes of data.
64 bytes from ovinnik.canonical.com (91.189.94.40): icmp_seq=1 ttl=52 time=198 ms

--- ubuntu.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 198.223/198.223/198.223/0.000 ms
teste

Ele fez o cat do arquivo ips, fez os pings e imprimiu $2 que é a palavra teste!

O que eu preciso, é de alguma forma, chamar esse script programa.sh e em vez de passar o parâmetro 1 que é o nome do arquivo(ips), passar alguns endereços para ele "pingar" e depois o segundo parâmetro, será possível?

Ex.:

[sagetr1@servsage1 simul]$ ./programa.sh $(echo google.com..br) teste
cat: google.com.br: Arquivo ou diretório não encontrado
cat: google.com.br: Arquivo ou diretório não encontrado
teste
[sagetr1@servsage1 simul]$ ./programa.sh $(google.com.br) teste
bash: google.com.br: Comando não encontrado...
Falta parâmetro
[sagetr1@servsage1 simul]$ ./programa.sh <(google.com.br) teste
bash: google.com.br: Comando não encontrado...
teste


Obrigado.

Atenciosamente,

Sandro Gambini
sandrojapa<at>gmail.com
(11) 97464-3384



Em qua, 15 de ago de 2018 às 03:03, Tiago Peczenyj address@hidden [shell-script] <address@hidden> escreveu:
 

Ola

Se o seu script que altera o arquivo escreve o conteudo alterado para a saida padrão , vc pode fazer isso

$ programa <( script ) parametro2

Vc também pode fazer com named pipes mas vai precisar executar 3 comandos 

Em ter, 14/08/2018 às 22:46, Sandro Gambini address@hidden [shell-script] <address@hidden> escreveu:
 

Boa tarde a todos!

Tenho uma dúvida que é a seguinte:

Tenho um programa que executa uma tarefa, através de um arquivo ascii com uma sintaxe própria. A minha necessidade seria executá-lo, mas ao invés de passar o arquivo, como parâmetro, para ele ler, gostaria de enviar o conteúdo do arquivo, através de um pipe por exemplo, mas não funciona. Um agravante é que o arquivo é o primeiro parâmetro e tem outro parâmetro obrigatório para passar após o primeiro.

Existe alguma forma de "enganar" o programa?

Sintaxe: programa <arquivo> <parâmetro2>

Algo tipo: programa $( <script que criaria o arquivo> ) <parâmetro2> 

Hoje faço um script que gera um arquivo temporário, executa o programa passando esse arquivo temporário por parâmetro, apago o arquivo temporário e finalizo o script, o que me parece não ser a melhor solução, a não ser que seja única.

Obrigado.


Atenciosamente,

Sandro Gambini
sandrojapa<at>gmail.com
(11) 97464-3384

--
Tiago B. Peczenyj

http://about.me/peczenyj

--
Tiago B. Peczenyj

http://about.me/peczenyj

reply via email to

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