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

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

Luciano Correa
mydoom

(usa Outra)

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"



  


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

Matheus
pylm

(usa Gentoo)

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

Marcelo Oliver
msoliver

(usa Debian)

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

Luciano Correa
mydoom

(usa Outra)

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

Luciano Correa
mydoom

(usa Outra)

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

Matheus
pylm

(usa Gentoo)

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

Marcelo Oliver
msoliver

(usa Debian)

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
______________________________________________________________________






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts