Problema con script : /bin/bash: intérprete incorrecto: Permiso denegado

16 04 2008

Un error, no se si tan recurrente, pero que me ha quitado algunos minutos en encontrar una solucion, ya que no estan obvia, pero si es sencilla 😛
Paso a explicar mi problema :
creo el “hola mundo” en un script :
vim hello.sh
Lo escribo :
#!/bin/bash
echo "hola mundo desde bash"

Luego le doy los permisos de ejecución:
chmod +x hello.sh
Y al ejecutarlo, viene la gran sorpresa :
./hello.sh
me dá como respuesta :
bash: ./hello.sh: /bin/bash: intérprete incorrecto: Permiso denegado
:O :O :O
Obviamente no era problema de los permisos del archivo, ya que los habia cambiado durante el proceso :S, tampoco era problema de los permisos de la bash ya que al hacer :
/bin/bash < hello.sh
Lo ejecuta normalmente.

Finalmente, el problema es el disco en cual estamos ejecutando el script, al cambiar de directorio ( a otra particion) ya no hubo problema, pronto espero encontrar la forma de poder ejecutar el script en al particion que desee, por el momento tendré que trabajar en otra particion :S

Saludos.

Anuncios




Ejecutar comando de shell desde C

30 01 2008

Hay ocaciones en que ejecutar un comando nativo del sistema, o mejor dicho un comando reconocido por nuestra shell, nos facilita mucho la vida….

Bueno, no para todos es tan obvio como hacer esto, asi que aca voy a dejar registrado como realizar esta sencilla operacion 😉

El formato es simple 😀
system("comando que quieras");

Aqui dejo un sencillisimo ejemplo, primero creamos un archivo llamado myls.c y dentro de él ponemos el siguiente codigo:

#include<stdio.h>
int main(){
system("ls -l");
return 0;
}

Al copiar y pegar el codigo va a tener un problemas con las comillas, asi que las tienen que poner denuevo 😀

Para compilar hacemos lo siguiente:
gcc myls.c -o myls

y finalmente para ejecutarlo, hacemos lo siguiente :

./myls

Al ejecutar este programa , será lo mismo que ejecutar en la consola el comando “ls -l” ( sin comillas).

Saludos