
paulo1205
(usa Ubuntu)
Enviado em 09/11/2022 - 11:15h
A menção a “
'\r'” nas mensagens de erro pode ser relevante.
Você editou esses arquivos no Windows? O Windows identifica suas quebras de linha com um par de caracteres (dois bytes, com os valores 13 e 10, respectivamente, correspondentes aos caracteres de controle CR (
carriage return) e LF (
line feed) do ASCII, e indicados na linguagem C e em várias ferramentas do UNIX como
\r e
\n, respectivamente), ao passo que o mundo UNIX usa apenas o caráter LF (
\n) como indicador de fim de linha.
Trazer para o mundo UNIX um arquivo que tenha sido editado no Windows pode fazer com que algumas ferramentas produzam resultados inesperados ao encontrarem um
\r sobrando antes do final da linha. Infelizmente, esse comportamento não é uniforme entre ferramentas: algumas podem considerar o
\r como se fosse apenas mais um tipo de caráter de espaçamento e ignorá-lo, ao passo que outras podem considerá-lo como um caráter comum, tal com uma letra ou algarismo, e imaginar que ele faça parte de um nome de arquivo ou de um argumento que você tenha de passar ao comando que estiver invocando.
No seu caso, parece que quando você invoca o script em texto, o Shell está sendo mais leniente com esses caracteres espúrios do que quando invoca com a versão criptografada com o shc.
Como primeira abordagem investigativa, sugiro confirmar se é realmente o caso de os arquivos que você está incluindo usarem o formato do Windows, e convertê-los para o formato UNIX (quer via comando como o
dos2unix ou da opção adequada dentro do seu editor de texto favorito).
... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)