Problema ao executar script no Ubuntu 16,04 lts

1. Problema ao executar script no Ubuntu 16,04 lts

VAGNER DA SILVA
vagnerslv

(usa Suse)

Enviado em 08/02/2021 - 15:30h

Olá, eu tenho um script que estava funcionando no redhat 4.0, mas no ubuntu 16.04 lts ele não funciona, já na criação dos vetores ele dá erro:
#!/bin/bash

vetor[1]="jan"
vetor[2]="fev"
vetor[3]="mar"

Dá o erro abaixo:

echo “Digite um número do mes:”
read numero;
echo "O Mes é, $vetor[numero]


[email protected]:/# sh bancos_test/scripts12/teste.sh
bancos_test/scripts12/teste.sh: 3: bancos_test/scripts12/teste.sh: vetor[1]=jan: not found
bancos_test/scripts12/teste.sh: 4: bancos_test/scripts12/teste.sh: vetor[2]=fev: not found
bancos_test/scripts12/teste.sh: 5: bancos_test/scripts12/teste.sh: vetor[3]=mar: not found
▒Digite um n▒mero do mes:▒
1
O Mes ▒, [numero]



  


2. Re: Problema ao executar script no Ubuntu 16,04 lts

Xerxes
xerxeslins

(usa Debian)

Enviado em 08/02/2021 - 15:34h


Coloca o script inteiro, por favor.

--



3. Re: Problema ao executar script no Ubuntu 16,04 lts

VAGNER DA SILVA
vagnerslv

(usa Suse)

Enviado em 08/02/2021 - 16:05h

xerxeslins escreveu:


Coloca o script inteiro, por favor.

--


Então esse é só um exemplo, o script original eu não posso colocar por questões de copyrigth, eu queria saber se preciso instalar algum pacote adicional ?


4. Re: Problema ao executar script no Ubuntu 16,04 lts

Xerxes
xerxeslins

(usa Debian)

Enviado em 08/02/2021 - 16:09h


Não deve precisar instalar nada adicional se ele for puramente em bash.

Só não sei dizer o motivo do erro.

--



5. Re: Problema ao executar script no Ubuntu 16,04 lts

Matheus
pylm

(usa Gentoo)

Enviado em 08/02/2021 - 16:43h


Se não podes postar o script na íntegra então uma ferramenta automatizada como o shell check seria o ideal pra encontrar o erro.


6. Re: Problema ao executar script no Ubuntu 16,04 lts

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 08/02/2021 - 17:16h

Vc pode usar
echo "O Mes é, $vetor[$numero]


7. Re: Problema ao executar script no Ubuntu 16,04 lts

Christian Santos
Christian007

(usa Outra)

Enviado em 08/02/2021 - 18:01h

Boa tarde,

O mais certo seria você usar o vetor corrido;

VETOR=("0" "janeiro" "fevereiro" "março" "abril" ...)

sempre deixo o 0 em branco pois as vezes o shell não entende o 0 como um inicio de for. (um bug bem chato)

o sistema entende o comando de entrada como números, mas entrega como escrita no vetor 0=nada hehe 1=janeiro 2=fevereiro 3=março ...

se quiser que leia todos pode usar um for.
for VETOR in [1..12] (1 EQUIVALE AO MES INICIAL E 12 AO MES FINAL)

espero ter ajudado.

Se você traçar metas absurdamente altas e falhar, seu fracasso será muito melhor que o sucesso de todos
[b] Christian Santos [b]


8. Re: Problema ao executar script no Ubuntu 16,04 lts

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 08/02/2021 - 19:09h

vagnerslv escreveu:
#!/bin/bash

vetor[1]="jan"
vetor[2]="fev"
vetor[3]="mar"

Dá o erro abaixo:

echo “Digite um número do mes:”
read numero;
echo "O Mes é, $vetor[numero]


[email protected]:/# sh bancos_test/scripts12/teste.sh
bancos_test/scripts12/teste.sh: 3: bancos_test/scripts12/teste.sh: vetor[1]=jan: not found
bancos_test/scripts12/teste.sh: 4: bancos_test/scripts12/teste.sh: vetor[2]=fev: not found
bancos_test/scripts12/teste.sh: 5: bancos_test/scripts12/teste.sh: vetor[3]=mar: not found
▒Digite um n▒mero do mes:▒
1
O Mes ▒, [numero]
----------------------------------------------------------------
Então esse é só um exemplo, o script original eu não posso colocar por questões de copyrigth, eu queria saber se preciso instalar algum pacote adicional ?


Francamente!!!!
Questões de copyrigth, em algo tão simples e ainda acusando ERRO!!!!!
Se ao menos funcionasse.......
Tá de brincadeira!!!!

Primeiro PONTO: RESOLVA qual SHELL quer USAR!
-----------------------------------------------------------------------
1º ERRO:
[email protected]:/# sh bancos_test/scripts12/teste.sh
2º.....
3º.....
------------------------------------------------------------------------
Sugestões:
man bash
ou
man sh/dash

OBS.: Por questões de "Propriedade Intelectual", não posso colocar a SOLUÇÃO.
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________




9. Re: Problema ao executar script no Ubuntu 16,04 lts

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 08/02/2021 - 19:33h

Sugestão:
echo "Digite o número do mês:"
select opt in jan fev mar abr mai jun jul ago set out nov dez ; do
echo "O mês escolhido foi \"$opt\""
break
done




10. Resolvido

VAGNER DA SILVA
vagnerslv

(usa Suse)

Enviado em 09/02/2021 - 08:32h

Olá pessoal,

Obrigado pelas sugestões, resolvi colocando na inicialização do script a palavra bash:

bash teste.sh

Ai funcionou sem erro.




11. Re: Problema ao executar script no Ubuntu 16,04 lts

Christian Santos
Christian007

(usa Outra)

Enviado em 09/02/2021 - 11:41h

vagnerslv escreveu:

Olá pessoal,

Obrigado pelas sugestões, resolvi colocando na inicialização do script a palavra bash:

bash teste.sh

Ai funcionou sem erro.



Ai é triste kkk, mas acontece

todos scripts deve ser dado um chmod +x nome scprit.sh (para ele ter permisão)

e para executar pode usar:

bash nome script.sh ou ./nome script.sh


Se você traçar metas absurdamente altas e falhar, seu fracasso será muito melhor que o sucesso de todos