O que é feito dentro de um script para que todos os scripts sejam executados automaticamente
#! / data / data / com.termux / files / usr / bin / bash
echo "This is the main script and is intended to execute all three auxiliaries."
# Run aux1.sh
source aux1.sh
# Run aux2.sh
source aux2.sh
Toda vez que incorporo meu script com shc isso acontece comigo:
./Auto-Help1.0.sh: line 65: source: ./DataWeb.sh: cannot execute binary file
Responder1
shc
substitui o script shell (que normalmente é um arquivo de texto) por um executável binário (que não é mais um script shell).
source
ou .
presuma que o argumento deles é um arquivo de texto, não um binário. Portanto, você não pode usar a saída de shc
with source
.
Responder2
Para pessoas menos versadas em shells Unix/Linux, as mensagens de erro podem ser um pouco enigmáticas. A versão longa da mensagem de erro é:
Em algum lugar nos seus scripts, aux1.sh
ou aux2.sh
, ou talvez até mesmo em um script que chamei desses scripts, um script chamado Auto-Help1.0.sh
é executado. Esse script Auto-Help1.0.sh
contém um erro e, mais especificamente, na linha 65.
Na linha 65 desse script, você provavelmente encontrará source ./DataWeb.sh
. Isso significa: execute ./DataWeb.sh
no shell atual como um conjunto de comandos do shell.
No entanto, ./DataWeb.sh
não é reconhecido como um script de shell. É um arquivo binário. Portanto, ele não pode ser executado como um script e não pode ser originado desta forma.
Então, o que vem a seguir?
-Olhe para ./DataWeb.sh
. É um binário ou deveria ser um shellscript (como o nome sugere)? Então por que é visto como binário? - Como você normalmente executa ./DataWeb.sh
? Tente fazer dessa forma na linha 65 do Auto-Help1.0.sh
, em vez de obter o arquivo.