|
From: | Tiago Peczenyj |
Subject: | Re: [shell-script] Arquivo em formato de parâmetro |
Date: | Fri, 17 Aug 2018 07:57:45 +0200 |
Tiago,não funciona:[sagetr1@servsage1 simul]$ ./programa.sh <(echo google.com.br) teste
google.com.br
teste@Julio,O que eu preciso é "enganar' um programa, que não posso alterar, e espera receber como primeiro parâmetro, um arquivo.Fiz esse script, que também espera receber um arquivo em $1, para tentar simular o que preciso, que é enviar um conteúdo no parâmetro $1, em vez do arquivo que teria esse conteúdo. Não sei se fui claro.Em qui, 16 de ago de 2018 às 17:06, 'Julio C. Neves' address@hidden [shell-script] <address@hidden> escreveu:Suponha que teu prg recebeu os seguintes parametros:Vc pode fazer algo como:$ DolarUm=($(cut -f-$(($#-1)) -d' ' <<< $*))$ echo ${DolarUm[@]}$ DolarDois=${!#}$ echo $DolarDoistesteComo vc pode ver as URL foram para o vetor DolarUm e o teu último parâmetro foi para a variável DolarDois. É isso que vc queria?Abraços,Julio» Não tem tempo para fazer um curso presencial?» Na sua cidade não tem nenhum bom curso de Linux?» Conheça nosso portal educacional e estude conosco:» Treinamento presencial (em 4 sábados) no RJ e BSBTambém damos treinamento em sua empresaem qualquer cidade, com certificado e nota fiscal.Em qui, 16 de ago de 2018 às 16: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 msPING 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
testeEle 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
Em qua, 15 de ago de 2018 às 03:03, Tiago Peczenyj address@hidden [shell-script] <address@hidden> escreveu:OlaSe o seu script que altera o arquivo escreve o conteudo alterado para a saida padrão , vc pode fazer isso$ programa <( script ) parametro2Vc 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.--
[Prev in Thread] Current Thread [Next in Thread]
- [shell-script] Arquivo em formato de parâmetro, Sandro Gambini, 2018/08/14
- Re: [shell-script] Arquivo em formato de parâmetro, Tiago Peczenyj, 2018/08/14
- Re: [shell-script] Arquivo em formato de parâmetro, Sandro Gambini, 2018/08/16
- Re: [shell-script] Arquivo em formato de parâmetro, Tiago Peczenyj, 2018/08/16
- Re: [shell-script] Arquivo em formato de parâmetro, Werneck Costa, 2018/08/16
- Re: [shell-script] Arquivo em formato de parâmetro, Julio C. Neves, 2018/08/16
- Re: [shell-script] Arquivo em formato de parâmetro, Sandro Gambini, 2018/08/16
- Re: [shell-script] Arquivo em formato de parâmetro, Tiago Peczenyj <=
- Re: [shell-script] Arquivo em formato de parâmetro, Sandro Gambini, 2018/08/17
Re: [shell-script] Arquivo em formato de parâmetro, itamarnet, 2018/08/17
- Prev by Date: Re: [shell-script] Arquivo em formato de parâmetro
- Next by Date: Re: [shell-script] Arquivo em formato de parâmetro
- Previous by thread: Re: [shell-script] Arquivo em formato de parâmetro
- Next by thread: Re: [shell-script] Arquivo em formato de parâmetro
- Index(es):