GNU/Linux >> Tutoriales Linux >  >> Linux

¿No puede ejecutar scripts bash incluso como root?

Aunque no es directamente pertinente a este hilo en particular; si un archivo proviene de un sistema Windows, puede haber un CR/LF al final de la línea. Esto afectaría a todas las líneas del archivo, incluida la línea de ejecución inicial, y no sería visible si está viendo el archivo.

$ ./test.sh 
-bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory

Para ver esto, podría cat -A el archivo:$ cat -A ./test.sh#!/bin/bash^M$echo "me"^M$

Para eliminar, use dos2unix.


Eso puede suceder si ha montado el sistema de archivos con la opción "noexec". Deberías eliminarlo.


El script debe ser ejecutable. Usa esto:

chmod +x <script-name>

Prueba

ls -la

para ver los derechos reales y la propiedad del archivo. Para ver si el comando chmod realmente funcionó. Es posible que desee cambiar la propiedad junto con la modificación de la verificación del archivo:http://www.tuxfiles.org/linuxhelp/fileowner.html


Linux
  1. ¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

  2. ¿La diferencia entre el abastecimiento ('.' o 'fuente') y la ejecución de un archivo en Bash?

  3. Bash =~ Regex y Https://regex101.com/?

  4. ¿No se puede eliminar el archivo, incluso cuando se ejecuta como raíz?

  5. No se puede Stat /etc/sudoers:¿No existe tal archivo o directorio?

Cómo verificar si existe un archivo o directorio en Bash

Cómo usar operadores de prueba de archivos Bash en Linux

Bash Scripting - Declaraciones condicionales

Cambiar directorio y ejecutar archivo en un comando

Cómo configurar ssh sin contraseña con claves RSA

hacer eco o imprimir /dev/stdin /dev/stdout /dev/stderr