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
shc
reemplaza el script de shell (que normalmente es un archivo de texto) por un ejecutable binario (que ya no es un script de shell).
source
o .
asuma que su argumento es un archivo de texto, no un binario. Entonces no puedes usar la salida de shc
with 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.sh
o aux2.sh
, o quizás incluso en un script al que llamé desde esos scripts, Auto-Help1.0.sh
se ejecuta un script llamado. Ese script Auto-Help1.0.sh
tiene 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.sh
en el shell actual como un conjunto de comandos de shell.
Sin embargo, ./DataWeb.sh
no 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.