En cygwin, podría hacer ./script.sh args, pero esto abre el archivo de secuencia de comandos en el bloc de notas en PowerShell.Ejecutar secuencia de comandos bash desde Windows PowerShell
¿Qué debo hacer para que se ejecute?
En cygwin, podría hacer ./script.sh args, pero esto abre el archivo de secuencia de comandos en el bloc de notas en PowerShell.Ejecutar secuencia de comandos bash desde Windows PowerShell
¿Qué debo hacer para que se ejecute?
debe poner el script como argumento para un * NIX shell se ejecuta, equivalente al * NIXish
sh myscriptfile
sh ./script.sh funciona. – wsorenson
¿De verdad? Obtengo El término 'sh' no se reconoce como el nombre de un cmdlet, función, archivo de script o programa operable. – KCD
Una advertencia a la respuesta aceptada es que 'sh' no está incluido en Powershell de vanilla. Tuve que instalar Git, que opcionalmente agrega algunas herramientas de UNIX al 'PATH' en Powershell,' sh.exe' es una de ellas. – peplin
Si se agrega la extensión .SH
a la variable de entorno PATHEXT
, usted será capaz de ejecutar shell secuencias de comandos de PowerShell utilizando sólo el nombre del script con argumentos:
PS> .\script.sh args
Si almacena sus scripts en un directorio que se incluye en la variable de entorno PATH, se puede ejecutar desde cualquier lugar, y omitir la extensión y la ruta:
PS> script args
Nota: sh.exe u otro * nix shell deben asociarse con la extensión .sh.
Para usuarios que no usan PowerShell que buscan hacer esto, ¿cómo se actualiza correctamente la 'RUTA' de PowerShell? variable? –
Powershell utiliza las mismas variables de entorno que utilizan todos los demás programas.Si escribe "entorno del sistema" en el menú de inicio de Windows, debería aparecer una opción del panel de control para editar variables de entorno. – Rynant
En la actualidad existe una solución "nativo" en Windows 10, después de habilitar Bash en Windows, puede introducir intérprete de comandos escribiendo bash
:
Puede ejecutar secuencias de comandos Bash como bash ./script.sh
, pero tener en cuenta que La unidad C se encuentra en /mnt/c
, y los discos duros externos no se pueden montar. Por lo tanto, es posible que deba cambiar el script un poco para que sea compatible con Windows.
Además, incluso como root
, usted todavía puede obtener permiso denegado cuando se mueve alrededor de los archivos en /mnt
, pero tiene su root
plena potencia en el sistema de archivos /
.
También asegúrese de que su script de shell esté formateado con estilo Unix, o puede haber errores.
Me pregunto por qué esperas que se ejecute una secuencia de comandos * nix-ish en Powershell ... Tienen conjuntos de comandos y sintaxis de scripting completamente diferentes (además, los scripts de powershell requieren una extensión .ps1 AFAIK). Podría publicar el script bash y alguien podría ayudarlo con una versión de Powershell. –
Porque: funciona. Ver respuesta aceptada – wsorenson
Estoy iluminado :) –