Pular para o conteúdo

Argumento inteiro positivo [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Argumento inteiro positivo [RESOLVIDO]

Enviado em 07/10/2019 - 18:06h

Estou criando um script que mostre os números primos em uma sequência, sendo essa sequência informada por argumentos.
O problema que estou tendo é que ao informar os valores por argumento está sendo entendido como se fosse string e não um número.

#!/bin/bash
factor {$1..$2} | awk -F \: '$1 == $2{ print $1}'


Quando eu rodo o programa ele me retorna :
factor: ‘{2..50}’ is not a valid positive integer


Alguém poderia me ajudar?

Responder tópico

2. Re: Argumento inteiro positivo [RESOLVIDO]

Enviado em 07/10/2019 - 18:46h

Usa o seq


#!/bin/bash

factor $(seq $1 $2) | awk -F \: '$1 == $2{ print $1}'

3. Re: Argumento inteiro positivo [RESOLVIDO]

Enviado em 07/10/2019 - 18:59h

pylm escreveu:

Usa o seq


#!/bin/bash

factor $(seq $1 $2) | awk -F \: '$1 == $2{ print $1}'
Cara, muuuito obrigado, deu certo!

4. Re: Argumento inteiro positivo [RESOLVIDO]

Enviado em 07/10/2019 - 19:10h

guilhermesandi escreveu:

Estou criando um script que mostre os números primos em uma sequência, sendo essa sequência informada por argumentos.
O problema que estou tendo é que ao informar os valores por argumento está sendo entendido como se fosse string e não um número.

#!/bin/bash
factor {$1..$2} | awk -F \: '$1 == $2{ print $1}'


Quando eu rodo o programa ele me retorna :
factor: ‘{2..50}’ is not a valid positive integer


Alguém poderia me ajudar?
Boa noite guilhermesandi.
O problema é que a expansão {$1..$2} não entende as variáveis....
Exemplo:
a=0;b=12
echo {$a..$b}
{0..12}
eval echo {$a..$b}
0 1 2 3 4 5 6 7 8 9 10 11 12

Para contornar faça:
factor $(eval echo {$1..$2}) | awk -F \: '$1 == $2{ print $1}'
Ou
factor $(seq $a $b)| awk -F \: '$1 == $2{ print $1}'

Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder