2010-03-15 07:34:42 +0000 2010-03-15 07:34:42 +0000
68
68

¿Cómo ejecutar el archivo .sh en Windows?

Cuando estoy intentando ejecutar un archivo(nombre.sh) en la línea de comandos por el comando ./nombre.sh , obtengo el error de que:

“.” no se reconoce como un comando interno o externo, operable o archivo por lotes

por favor ayúdame a ejecutar el archivo .sh

Respuestas (15)

76
76
76
2010-03-15 07:58:46 +0000

Estás en Windows CMD.EXE (del mensaje de error). Utiliza una sintaxis diferente para ejecutar los comandos. Necesitarás usar sh name.sh, asumiendo que tienes Cygwin o similar instalado.

Para aclarar, Windows no tiene una utilidad incorporada para soportar archivos .sh. Para ejecutarlo, necesitarás instalar una herramienta de terceros como Cygwin .

13
13
13
2010-03-15 13:48:44 +0000

Estás tratando de ejecutar un comando de Linux en el Windows Command Prompt.

En Linux la barra de avance es un separador de caminos. En Windows la barra invertida es un separador de ruta y la barra hacia adelante generalmente indica un argumento.

Por lo tanto, Windows cree que está intentando ejecutar un comando llamado “.” y analizando el argumento “/nombre.sh”. La convención correcta sería “.\Nnombre.sh”. Adicionalmente, Windows buscará automáticamente en el directorio actual su comando, por lo que sólo tiene que escribir “nombre.sh”.

El siguiente problema al que se enfrentará es que Windows no sabe lo que es un script sh, de nuevo esto es cosa de Linux. Podría resolver esto instalando Cygwin si realmente quiere o necesita ejecutar un script sh.

Sin embargo, juzgando por uno de sus comentarios anteriores podría renombrar el script a name.bat y borrar la línea “#!/bin/sh”. Ahora tienes un archivo Batch que Windows debería entender. Puedes leer más sobre los archivos batch aquí .

11
11
11
2010-11-18 15:46:30 +0000

Alternativamente, podrías volverte al lado oscuro e instalar Linux. Desde el prompt:

sh runide.sh

o

sudo sh runide.sh

Tu programa se ejecutará y tendrás un mejor sistema también.

9
9
9
2017-04-09 18:58:10 +0000

La mejor solución en mi opinión:

  • Descargar e instalar .git para Windows

  • Haga clic con el botón derecho del ratón en el escritorio y diga “git bash here ”

  • Ejecute su script como en unix

  • ¡Hecho!

Precaución: ¡Muchos comandos no funcionan en Windows! Pero aún así, muchas de las cosas básicas funcionarán.

Si necesita ese script regularmente puede crear un atajo (en su escritorio, por ejemplo):

  • Crear un atajo al mintty.exe en su escritorio

  • Editar las propiedades del atajo y cambiar el objetivo (mantener el camino):

  • C:\Program Files\Git\usr\bin\mintty.exe" -h always /bin/bash -l -e 'D:\folder\script.sh'

5
5
5
2011-08-16 22:52:50 +0000

Intentas que tu coche funcione con zumo de naranja en lugar de gasolina. Windows comparte comandos similares almacenados en archivos .bat o .cmd con Unix/Linux/zOS Unix Subsystem/*ix shell scripts ya que estas dos familias de sistemas operativos comparten un ancestro común las máquinas DEC PDP-x.

Si quieres una gratificación instantánea, necesitarás instalar un entorno que proporcione una “sh”. exe" o un programa “csh.exe” o “bash.exe” (¿tsh.exe alguien?)

Alternativamente, si conoce los comandos de los scripts de Unix, muy bien, y conoce los comandos de los archivos .cmd y .bat de Windows, muy bien, puede traducir el archivo .sh a un archivo .bat o .cmd. Aún así, a menudo te encontrarás con más programas de estilo Unix que no tienen equivalente bajo Windows–grep, sed, vi, emacs, etc. Por lo tanto, la llamada a instalar CygWin (no minimalista) - sólo para obtener el shell y las herramientas de Unix. Ponerlo en una unidad flash, para estas ocasiones especiales.

3
3
3
2012-05-28 23:19:47 +0000

Alguien dijo algo sobre que el MS-DOS usaba / para los comandos y Alguien dijo algo sobre que el MS-DOS usaba/` para los comandos y para las rutas. Esto es ligeramente engañoso. Mira mi ejemplo:

C:\myfoo\foo\>cd../.. 
C:\myfoo\foo\>cd..\..

No tiene ninguna diferencia en el efecto. Sí, no es cierto para todas las operaciones - la respuesta real es simplemente No, o sin Cygwin o SSHD no se puede.

Sólo lo sé porque estúpidamente pasé medio día tratando de averiguar lo que if then fi y eval, exec hacen con -Djava.something cuando se les llama.

2
2
2
2015-07-20 16:24:31 +0000

Usa Github para Windows. Contiene todos los ejecutables del entorno Unix. https://github-windows.s3.amazonaws.com/GitHubSetup.exe

1
1
1
2014-05-13 22:05:11 +0000

Encontré una solución diferente y fácil, llamada UnixUtil .

Descargar y descomprimirlo en C: drive. Configura la variable de entorno path para incluir C:\UnixUtils\usr\local\wbin.

Esto es importante. NO establezca la ruta a C:\UnixUtils\bin

1
1
1
2018-05-01 16:06:51 +0000

Este es un hilo viejo, pero para aquellos que usan Windows 10. Sólo abre las características de Windows desde el panel de control ‘Activar o desactivar las características de Windows’

Elige la característica ‘Subsistema de Windows para Linux’. Después de la instalación, tienes ‘Bash’ e incluso puedes configurar servidores nativos de Linux dentro de bash. Y por supuesto, el comando sh, dentro de bash, también funciona.

1
1
1
2016-12-27 10:39:14 +0000

Para completar, quiero mencionar una nueva característica de “Subsistema de Windows para Linux” para Windows 10. Los detalles se describen en http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/

Nota, que requiere activar el interruptor “Modo de desarrollo” y habilitar la opción “Subsistema de Windows para Linux (Beta)”.

Por mi parte, he descubierto que la instalación de Git para Windows (que estoy usando de todas formas) es suficiente.

0
0
0
2012-08-31 15:16:38 +0000

Si tienes una caja de Linux en tu casa (o en el trabajo) y estás conectado a la misma red, y esta red es segura, esto podría hacer el truco:

  1. Compartir una carpeta en Windows (bastante fácil, pero asegúrese de que la red esté a salvo de intrusos).
  2. Montarlo en Linux con mount //WinMachine/Share LinuxFolder (IIRC, y requiere Samba ).
  3. Usando algo como PuTTY , inicia sesión remotamente en esa caja de Linux.
  4. 4. Ejecute su comando en la carpeta montada.
0
0
0
2010-03-15 13:46:42 +0000

Vale, hay MUCHO problema con eso… suelta el #!/bin/sh, y cambia la extensión al bate, y podría funcionar con unos cuantos arreglos más. Entonces puedes invocarla por su nombre de archivo también.

La sintaxis de un shell script unix, y un archivo batch de windows no son muy similares. cygwin, o un montón de cosas con unxutils podría hacer algo que funcionara en ambos, pero a menos que estés ABSOLUTAMENTE seguro de que el entorno es siempre el mismo, no vale la pena el dolor de cabeza

0
0
0
2016-08-25 07:34:59 +0000

Aunque las respuestas existentes aquí eran correctas en ese momento, Windows 10 hace ahora incluye opcionalmente una versión modificada de Ubuntu ejecutando un shell completo de bash .

Una vez hecho ejecutable, los scripts pueden ser ejecutados de la manera habitual desde dentro del bash, por ejemplo:

chmod +x myscript.sh
./myscript.sh

Si quieres ejecutar un script directamente desde Windows, puedes crear un atajo en el mismo directorio y establecer el ‘Destino’ en algo como:

C:\Windows\System32\bash.exe -c "./myscript.sh"

Si la ruta de tu script es relativa a la ubicación del atajo (como el ejemplo anterior) asegúrate de que el campo ‘Iniciar en’ también esté en blanco.

0
0
0
2015-11-23 11:57:56 +0000

Para ejecutar el script de shell desde las ventanas. Primero usa el comando : dos2unix y luego puedes usar tu comando normal : sh runide.sh

Esto funcionará.

0
0
0
2010-03-15 07:55:19 +0000

Es posible que el problema esté realmente dentro del archivo name.sh – estás tratando de usar el comando . pero está intentando ejecutar una especie de shell (por ejemplo, csh, creo) en la que no es un comando válido.

Entonces: ¿ name.sh comienza con el #!/bin/sh correcto (si realmente estás tratando de ejecutar sh)?