Meu comando está dando esse erro (/exe5.sh: linha 2: ((: cont =: erro de sintaxe: esperava operando

1. Meu comando está dando esse erro (/exe5.sh: linha 2: ((: cont =: erro de sintaxe: esperava operando

luiz antônio
luiz_bq

(usa Linux Mint)

Enviado em 22/08/2021 - 10:11h

#!/bin/bash
for ((cont =$1; cont <=$2;cont++))
do
echo $cont
done
~
~


  


2. Re: Meu comando está dando esse erro (/exe5.sh: linha 2: ((: cont =: erro de sintaxe: esperava opera

Perfil removido
removido

(usa Nenhuma)

Enviado em 22/08/2021 - 10:43h

luiz_bq escreveu:

#!/bin/bash
for ((cont =$1; cont <=$2;cont++))
do
echo $cont
done
~
~


Pra rodar esse script ai, tem que passar dois parâmetros numéricos na linha de comando, senão vai dar pau mesmo. O ideal é fazer uma tratativa para verificar se o usuário passou no mínimo dois parâmetros:
#!/bin/bash

# tratativa
(($# < 2 )) && { echo "Forneça dois parâmetros numéricos" >&2; exit 1; }

for ((count = $1; count <= $2; count++))
do
echo $count
done


Executando:
script.sh 1 10 



3. Re: Meu comando está dando esse erro (/exe5.sh: linha 2: ((: cont =: erro de sintaxe: esperava operando

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 22/08/2021 - 16:39h


luiz_bq escreveu:

#!/bin/bash
for ((cont =$1; cont <=$2;cont++))
do
echo $cont
done
~
~

---------------------------------------------------------------------------------------
Boa tarde.
Além de checar o nº de parâmetros, conforme já sugerido pelo ru4n,
Verifique se os mesmos são números....
[[ "$1" =~ ^[0-9]+$ && "$2" =~ ^[0-9]+$ ]] && echo ok || { echo "Param inválido";exit 1;}
E ainda:
$1 > $2, será um contador Decrescente.
Exemplo:
#!/usr/bin/env bash
sinal="++";
cond='<=';
tipo="Crescente";

if [[ "$1" =~ ^[0-9]+$ && "$2" =~ ^[0-9]+$ ]];then
(($1 > $2)) && { sinal="--";cond='>=';tipo="Decrescente";}
else
echo -e "Param Incorreto\nSaindo...";
exit;
fi
echo -e "Contador $tipo: de "$1" a "$2""

for ((n=$1;n ${cond} $2;n${sinal}));do
printf "%02d\n" "$n";
sleep 0.125;
done


Saída:
./contador.sh 12 0
Contador Decrescente: de 12 a 0
12
. . .
00
---------------------------------------------------
./contador.sh 0 12
Contador Crescente: de 0 a 12
00
...
12
--------------------------------------------------

______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:
Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.

______________________________________________________________________


4. ele decrescente nesse comando ele não imprime na tela.

luiz antônio
luiz_bq

(usa Linux Mint)

Enviado em 24/08/2021 - 19:25h









Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts