Ejecutar scripts desde un script principal usando el mismo subshell, ¿me sucede esto?

Ejecutar scripts desde un script principal usando el mismo subshell, ¿me sucede esto?

Qué se hace dentro de un script para que todos los scripts se ejecuten automáticamente

#! / 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

  Cada vez que incrusto mi script con shc me pasa esto:

./Auto-Help1.0.sh: line 65: source: ./DataWeb.sh: cannot execute binary file

Respuesta1

shcreemplaza el script de shell (que normalmente es un archivo de texto) por un ejecutable binario (que ya no es un script de shell).

sourceo .asuma que su argumento es un archivo de texto, no un binario. Entonces no puedes usar la salida de shcwith source.

Respuesta2

Para las personas que están menos versadas en shells de Unix/Linux, los mensajes de error pueden ser un poco crípticos. La versión larga del mensaje de error es:

En algún lugar de sus scripts, aux1.sho aux2.sh, o quizás incluso en un script al que llamé desde esos scripts, Auto-Help1.0.shse ejecuta un script llamado. Ese script Auto-Help1.0.shtiene un error, y más específicamente en la línea 65.

En la línea 65 de ese script, lo más probable es que encuentre source ./DataWeb.sh. Eso significa: ejecutar ./DataWeb.shen el shell actual como un conjunto de comandos de shell.

Sin embargo, ./DataWeb.shno se reconoce como un script de shell. Es un archivo binario. Por lo tanto, no se puede ejecutar como un script y no se puede obtener de esta manera.

Entonces, ¿qué sigue?

-Mira a ./DataWeb.sh. ¿Es un binario o debería ser un shellscript (como sugiere el nombre)? Entonces, ¿por qué se considera binario? - ¿Cómo lo ejecutas normalmente ./DataWeb.sh? Intente hacerlo de esa manera en la línea 65 de Auto-Help1.0.sh, en lugar de buscar el archivo.

información relacionada