Execute scripts de um script principal usando o mesmo subshell. Isso acontece comigo?

Execute scripts de um script principal usando o mesmo subshell. Isso acontece comigo?

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

shcsubstitui o script shell (que normalmente é um arquivo de texto) por um executável binário (que não é mais um script shell).

sourceou .presuma que o argumento deles é um arquivo de texto, não um binário. Portanto, você não pode usar a saída de shcwith 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.shou 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.shcontém um erro e, mais especificamente, na linha 65.

Na linha 65 desse script, você provavelmente encontrará source ./DataWeb.sh. Isso significa: execute ./DataWeb.shno shell atual como um conjunto de comandos do shell.

No entanto, ./DataWeb.shnã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.

informação relacionada