Pular para o conteúdo

Os scripts criados rodam no emulador CMDER, mas não rodam no console do Linux Mint, mesmo em root

Responder tópico
  • Denunciar
  • Indicar

1. Os scripts criados rodam no emulador CMDER, mas não rodam no console do Linux Mint, mesmo em root

Enviado em 06/04/2020 - 15:46h

Boa tarde amigos, conheço o Linux desde a eṕoca do Kurumin, mas somente esse ano comecei a usá-lo de verdade, minha distro é Linux Mint, a mesma da escola técnica estadual onde faço o curso de redes de computador, uma das disciplinas e lógica de programação, e nessa estamos conhecendo e aprendendo a criar alguns scripts. O que acontece, usamos um emulador para Windows chamado CMDER, onde criamos e testamos os scripts, eu instalei o Linux Mint no meu notebook e comecei a aprender a usar o console com ótimas dicas da galera do Viva o Linux e outras comunidades, e comecei a testas esses scripts no console da minha distro, mas todas estão dando erro, no CMDER todas rodam, existe alguma diferença? Abaixo segue uns dos scripts(não reparem não, e coisa bem simples ta, sou aprendiz kkk):

#!/bin/bash
clear
echo "Digite o numero:"
read X
rm ex1_1b.txt
echo "Tabuada de "$X
for Y in 1 2 3 4 5 6 7 8 9 10;
do
echo " $X x $Y = $[X*Y] " >> ex1_1b.txt
done
cat ex1_1b.txt

Esse é o outro:
#!/bin/bash
clear
val=0
rm lista_ex3_1b.txt
echo -n "Digite o primeiro número: "
read num1
val=$(($val+$num1))
echo "Valor Inicial: $val"
echo $num1 >> lista_ex3_1b.txt
echo ""
echo -n "Digite o segundo número: "
read num2
val=$(($val+num2))
echo "Soma do primeiro número com o segundo: $val"
echo $num2 >> lista_ex3_1b.txt
echo ""
echo -n "Digite o terceiro número: "
read num3
val=$(($val+num3))
echo "Soma do segundo número com o terceiro: $val"
echo $num3 >> lista_ex3_1b.txt
echo ""
echo -n "Digite o quarto número: "
read num4
val=$(($val+num4))
echo "Soma do terceiro com o quarto numero: $val"
echo $num4 >> lista_ex3_1b.txt
echo ""
echo -n "Digite o quinto número: "
read num5
val=$(($val+num5))
echo "Soma do quarto com o quinto número: $val"
echo $num5 >> lista_ex3_1b.txt
echo ""
echo "Os seguintes numeros foram digitados:"
echo "_____________________________________"
cat lista_ex3_1b.txt
echo "_____________________________________"
soma=$(($num1+$num2+$num3+$num4+$num5))
echo ""
echo "A soma dos numeros digitados é $soma"

Responder tópico

2. Re: Os scripts criados rodam no emulador CMDER, mas não rodam no console do Linux Mint, mesmo em root

Enviado em 06/04/2020 - 16:26h

Ambos tão funcionando cara.

3. Re: Os scripts criados rodam no emulador CMDER, mas não rodam no console do Linux Mint, mesmo em root

Enviado em 06/04/2020 - 18:05h


mydoom escreveu:

Boa tarde amigos, conheço o Linux desde a eṕoca do Kurumin, mas somente esse ano comecei a usá-lo de verdade, minha distro é Linux Mint, a mesma da escola técnica estadual onde faço o curso de redes de computador, uma das disciplinas e lógica de programação, e nessa estamos conhecendo e aprendendo a criar alguns scripts. O que acontece, usamos um emulador para Windows chamado CMDER, onde criamos e testamos os scripts, eu instalei o Linux Mint no meu notebook e comecei a aprender a usar o console com ótimas dicas da galera do Viva o Linux e outras comunidades, e comecei a testas esses scripts no console da minha distro, mas todas estão dando erro, no CMDER todas rodam, existe alguma diferença? Abaixo segue uns dos scripts(não reparem não, e coisa bem simples ta, sou aprendiz kkk):

#!/bin/bash
clear
echo "Digite o numero:"
read X
rm ex1_1b.txt
echo "Tabuada de "$X
for Y in 1 2 3 4 5 6 7 8 9 10;
do
echo " $X x $Y = $[X*Y] " >> ex1_1b.txt
done
cat ex1_1b.txt

Esse é o outro:
#!/bin/bash
clear
val=0
rm lista_ex3_1b.txt
echo -n "Digite o primeiro número: "
read num1
val=$(($val+$num1))
echo "Valor Inicial: $val"
echo $num1 >> lista_ex3_1b.txt
echo ""
echo -n "Digite o segundo número: "
read num2
val=$(($val+num2))
echo "Soma do primeiro número com o segundo: $val"
echo $num2 >> lista_ex3_1b.txt
echo ""
echo -n "Digite o terceiro número: "
read num3
val=$(($val+num3))
echo "Soma do segundo número com o terceiro: $val"
echo $num3 >> lista_ex3_1b.txt
echo ""
echo -n "Digite o quarto número: "
read num4
val=$(($val+num4))
echo "Soma do terceiro com o quarto numero: $val"
echo $num4 >> lista_ex3_1b.txt
echo ""
echo -n "Digite o quinto número: "
read num5
val=$(($val+num5))
echo "Soma do quarto com o quinto número: $val"
echo $num5 >> lista_ex3_1b.txt
echo ""
echo "Os seguintes numeros foram digitados:"
echo "_____________________________________"
cat lista_ex3_1b.txt
echo "_____________________________________"
soma=$(($num1+$num2+$num3+$num4+$num5))
echo ""
echo "A soma dos numeros digitados é $soma"
Boa tarde mydoom.
Testei o 1ª script e funcionou.....
Bem provável que você esta executando com o interpretador "sh", nesse caso acusa ERRO.
Para executar, faça:
./nomedoscript

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

4. Re: Os scripts criados rodam no emulador CMDER, mas não rodam no console do Linux Mint, mesmo em root

Enviado em 07/04/2020 - 01:54h

pylm escreveu:

Ambos tão funcionando cara.
Ei meu amigo boa noite, não consegui fazer funcionar, dá erro de sintaxe quando uso bash nomedoscript.sh, e dá que o diretoria não existe quando uso só o bash nomedoscript.

root@LAC-Servicos:/media/lucianocorrea/Arquivos/Users/Google Drive/Cursos/Redes/Software de Aula/cmder/Scripts/atividades1b# bash ex1_1b.sh
ex1_1b.sh: linha 13: $'\r': comando não encontrado
ex1_1b.sh: linha 14: $'clear\r': comando não encontrado
ex1_1b.sh: linha 15: $'\r': comando não encontrado
Digite o numero:
': não é um identificador válido
ex1_1b.sh: linha 18: $'\r': comando não encontrado
rm: não foi possível remover 'ex1_1b.txt'$'\r': Arquivo ou diretório inexistente
ex1_1b.sh: linha 20: $'\r': comando não encontrado
Tabuada de X
ex1_1b.sh: linha 23: erro de sintaxe próximo ao token inesperado `$'\r''
'x1_1b.sh: linha 23: `
root@LAC-Servicos:/media/lucianocorrea/Arquivos/Users/Google Drive/Cursos/Redes/Software de Aula/cmder/Scripts/atividades1b#


root@LAC-Servicos:/media/lucianocorrea/Arquivos/Users/Google Drive/Cursos/Redes/Software de Aula/cmder/Scripts/atividades1b# bash ex1_1b
bash: ex1_1b: Arquivo ou diretório inexistente

Será que o problema e o local onde estou executando? Os arquivos estão em um partição windows que tenho o win7, será que é isso?


5. Re: Os scripts criados rodam no emulador CMDER, mas não rodam no console do Linux Mint, mesmo em root

Enviado em 07/04/2020 - 02:04h

msoliver escreveu:


mydoom escreveu:

Boa tarde amigos, conheço o Linux desde a eṕoca do Kurumin, mas somente esse ano comecei a usá-lo de verdade, minha distro é Linux Mint, a mesma da escola técnica estadual onde faço o curso de redes de computador, uma das disciplinas e lógica de programação, e nessa estamos conhecendo e aprendendo a criar alguns scripts. O que acontece, usamos um emulador para Windows chamado CMDER, onde criamos e testamos os scripts, eu instalei o Linux Mint no meu notebook e comecei a aprender a usar o console com ótimas dicas da galera do Viva o Linux e outras comunidades, e comecei a testas esses scripts no console da minha distro, mas todas estão dando erro, no CMDER todas rodam, existe alguma diferença? Abaixo segue uns dos scripts(não reparem não, e coisa bem simples ta, sou aprendiz kkk):

#!/bin/bash
clear
echo "Digite o numero:"
read X
rm ex1_1b.txt
echo "Tabuada de "$X
for Y in 1 2 3 4 5 6 7 8 9 10;
do
echo " $X x $Y = $[X*Y] " >> ex1_1b.txt
done
cat ex1_1b.txt

Esse é o outro:
#!/bin/bash
clear
val=0
rm lista_ex3_1b.txt
echo -n "Digite o primeiro número: "
read num1
val=$(($val+$num1))
echo "Valor Inicial: $val"
echo $num1 >> lista_ex3_1b.txt
echo ""
echo -n "Digite o segundo número: "
read num2
val=$(($val+num2))
echo "Soma do primeiro número com o segundo: $val"
echo $num2 >> lista_ex3_1b.txt
echo ""
echo -n "Digite o terceiro número: "
read num3
val=$(($val+num3))
echo "Soma do segundo número com o terceiro: $val"
echo $num3 >> lista_ex3_1b.txt
echo ""
echo -n "Digite o quarto número: "
read num4
val=$(($val+num4))
echo "Soma do terceiro com o quarto numero: $val"
echo $num4 >> lista_ex3_1b.txt
echo ""
echo -n "Digite o quinto número: "
read num5
val=$(($val+num5))
echo "Soma do quarto com o quinto número: $val"
echo $num5 >> lista_ex3_1b.txt
echo ""
echo "Os seguintes numeros foram digitados:"
echo "_____________________________________"
cat lista_ex3_1b.txt
echo "_____________________________________"
soma=$(($num1+$num2+$num3+$num4+$num5))
echo ""
echo "A soma dos numeros digitados é $soma"
Boa tarde mydoom.
Testei o 1ª script e funcionou.....
Bem provável que você esta executando com o interpretador "sh", nesse caso acusa ERRO.
Para executar, faça:
./nomedoscript

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


msoliver escreveu:


mydoom escreveu:

Boa tarde amigos, conheço o Linux desde a e?oca do Kurumin, mas somente esse ano comecei a usá-lo de verdade, minha distro é Linux Mint, a mesma da escola técnica estadual onde faço o curso de redes de computador, uma das disciplinas e lógica de programação, e nessa estamos conhecendo e aprendendo a criar alguns scripts. O que acontece, usamos um emulador para Windows chamado CMDER, onde criamos e testamos os scripts, eu instalei o Linux Mint no meu notebook e comecei a aprender a usar o console com ótimas dicas da galera do Viva o Linux e outras comunidades, e comecei a testas esses scripts no console da minha distro, mas todas estão dando erro, no CMDER todas rodam, existe alguma diferença? Abaixo segue uns dos scripts(não reparem não, e coisa bem simples ta, sou aprendiz kkk):

#!/bin/bash
clear
echo "Digite o numero:"
read X
rm ex1_1b.txt
echo "Tabuada de "$X
for Y in 1 2 3 4 5 6 7 8 9 10;
do
echo " $X x $Y = $[X*Y] " >> ex1_1b.txt
done
cat ex1_1b.txt

Esse é o outro:
#!/bin/bash
clear
val=0
rm lista_ex3_1b.txt
echo -n "Digite o primeiro número: "
read num1
val=$(($val+$num1))
echo "Valor Inicial: $val"
echo $num1 >> lista_ex3_1b.txt
echo ""
echo -n "Digite o segundo número: "
read num2
val=$(($val+num2))
echo "Soma do primeiro número com o segundo: $val"
echo $num2 >> lista_ex3_1b.txt
echo ""
echo -n "Digite o terceiro número: "
read num3
val=$(($val+num3))
echo "Soma do segundo número com o terceiro: $val"
echo $num3 >> lista_ex3_1b.txt
echo ""
echo -n "Digite o quarto número: "
read num4
val=$(($val+num4))
echo "Soma do terceiro com o quarto numero: $val"
echo $num4 >> lista_ex3_1b.txt
echo ""
echo -n "Digite o quinto número: "
read num5
val=$(($val+num5))
echo "Soma do quarto com o quinto número: $val"
echo $num5 >> lista_ex3_1b.txt
echo ""
echo "Os seguintes numeros foram digitados:"
echo "_____________________________________"
cat lista_ex3_1b.txt
echo "_____________________________________"
soma=$(($num1+$num2+$num3+$num4+$num5))
echo ""
echo "A soma dos numeros digitados é $soma"
Boa tarde mydoom.
Testei o 1ª script e funcionou.....
Bem provável que você esta executando com o interpretador "sh", nesse caso acusa ERRO.
Para executar, faça:
./nomedoscript

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


Ei Marcelo, boa noite!
Tentei da forma que voce me falou, deu o erro abaixo:

root@LAC-Servicos:/media/lucianocorrea/Arquivos/Users/Google Drive/Cursos/Redes/Software de Aula/cmder/Scripts/atividades1b# ./ex1_1b
bash: ./ex1_1b: Arquivo ou diretório inexistente.

e tentei assim também

root@LAC-Servicos:/media/lucianocorrea/Arquivos/Users/Google Drive/Cursos/Redes/Software de Aula/cmder/Scripts/atividades1b# ./ex1_1b.sh
bash: ./ex1_1b.sh: /bin/bash^M: interpretador incorreto: Arquivo ou diretório inexistente

Será que e o local onde estão salvos os scripts?

6. Re: Os scripts criados rodam no emulador CMDER, mas não rodam no console do Linux Mint, mesmo em roo

Enviado em 07/04/2020 - 07:58h

O Windows encheu o arquivo de caracteres invisíveis. Usa o dos2unix pra arrumar a bagunça:


dos2unix script.sh


Inclusive se tu copiar aqui do forum, como eu fiz, o script funciona.

7. Re: Os scripts criados rodam no emulador CMDER, mas não rodam no console do Linux Mint, mesmo em root

Enviado em 07/04/2020 - 17:32h

Bem lembrado pelo "pylm".
O script foi gerado no Windows, o "fim de linha" é, "CRLF" no Linux é "\n".
com o comando cat -A arquivo, voce visualiza "^M$" no final da linha.
o file tbem mostra a terminação:
...... with CRLF line terminators
Além do comando sugerido, o sed tbem resolve:
sed -i 's/^M//g' arquivo
NOTA: Para escrever o ^M, faça:
CTRL+V
CTRL+M


______________________________________________________________________
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