Come posso eseguire uno script di shell in Windows? [duplicare]


23

Sono un utente Mac e non conosco Windows. Come posso eseguire uno script di shell in Windows?

Generalmente, vorrei salvare il file di testo con l'estensione .shed eseguirlo tramite Terminale. Ma come potrei farlo in Windows?



2
Puoi fornire un esempio di uno script che ti aspetti di eseguire su Windows?

1
Stai cercando di eseguire uno .shscript shell preesistente ? O vuoi solo sapere come eseguire lo script per Windows?
Keltari,

Risposte:


30

Gli script con un .shsuffisso sono generalmente script di shell Bourne (o bash, o ksh o zsh - tutte le shell derivate dalla shell Bourne). (Notare che su sistemi simili a Unix, incluso MacOS, il .shsuffisso non è necessario; il sistema operativo osserva la #!/bin/shriga nella parte superiore dello script per determinare come eseguirlo.)

Windows non fornisce una shell tipo Bourne.

È possibile installare Cygwin , che fornisce un ambiente simile a Unix in Windows, ma non ha un ambiente particolarmente "nativo". (Commento editoriale: Cygwin è ottimo per le persone come me che hanno bisogno di usare Windows ma preferirebbero usare Unix.)

Esistono altri sottosistemi simili a Unix eseguiti su Windows, inclusi MinGW e il pacchetto Servizi Windows per UNIX fornito da Microsoft.

Oppure, invece di provare a scrivere ed eseguire script shell simili a Unix, puoi scrivere file batch di Windows. Questi generalmente hanno un .bato un .cmdsuffisso. Usano gli stessi comandi e sintassi del prompt dei comandi interattivo di Windows.

C'è anche il relativamente nuovo Windows PowerShell ; Non ne ho familiarità da solo, ma ne ho sentito parlare bene.


3
Sosterrò il suggerimento di PowerShell come utente PowerShell che ha scritto diversi script per fare tutto, dal riavvio di un computer remoto o la chiusura dei servizi su un computer remoto all'estrazione di un elenco di nomi di computer dalla directory attiva, alfabetizzandoli e testandoli per determinati servizi e facendo grandi spostamenti di file complicati. Può letteralmente farlo TUTTO in Windows.
Paperlantern,

1
Vale la pena notare che mentre cygwin potrebbe consentire l'esecuzione dello script, potrebbe non funzionare correttamente se fa alcune ipotesi sul sistema sottostante (ad esempio binari disponibili, layout del filesystem, ecc.)
Daenyth


2

Su Win le estensioni comuni sono .bato .cmd. Una buona fonte per i comandi utilizzati nella shell di Windows è ss64 - per CMD e PowerShell.

Cygwin non è un "must". Ti sta solo dando lo stile Linux: usa BASH su Win.


2

Che dire di UWIN ??

UWIN è un pacchetto software creato da David Korn che consente ai programmi scritti per il sistema operativo Unix di essere creati ed eseguiti su Microsoft Windows con poche o nessuna modifica. Parte dello sviluppo del software è stato subappaltato a Wipro, in India.

Controlla questo UWIN - Unix per Windows

Caratteristiche salienti di UWIN

  1. Accesso a quasi tutti gli strumenti da riga di comando di Unix su Windows. 245 strumenti da riga di comando per l'esattezza.
  2. Viene fornito in bundle con il compilatore Unix originale 'cc', così come una pletora di strumenti come 'make' e le librerie necessarie che consentono alle applicazioni Unix di essere costruite ed eseguite su macchine Windows con pochissime o nessuna modifica nel codice sorgente.
  3. Opzione per utilizzare altri compilatori come Visual C ++ o Mingw per compilare programmi. Pacchetto Perl completo.
  4. Librerie X windows per coloro che aspirano a sviluppare applicazioni X su Windows. Sebbene per eseguire quelle applicazioni in Windows, è necessario un server X che non sia in bundle con UWIN.
  5. UWIN viene fornito con un'applet del pannello di controllo (accessibile tramite 'Start-> Impostazioni-> Pannello di controllo-> UWIN') che può essere utilizzato per configurare alcuni dei parametri del sistema UWIN.

Usi di UWIN

  • Esegui nativamente le applicazioni Unix in Windows alla massima velocità.
  • Usa tutta la potenza degli strumenti da riga di comando Unix su Windows.
  • La shell korn in bundle con UWIN fa sentire un utente Unix come a casa in un ambiente Windows.
  • Sviluppa ed esegui applicazioni UNIX su Windows.
  • Sviluppa applicazioni X sulla piattaforma Windows.

Svantaggi di UWIN

  • UWIN non viene fornito in bundle con un server X, quindi un utente non sarà in grado di eseguire applicazioni X su Windows. Sebbene siano disponibili server X commerciali di terze parti in grado di colmare questa lacuna.
  • UWIN non è rilasciato sotto licenza GPL ma è scaricabile e utilizzabile gratuitamente per scopi didattici e non commerciali

Quel software è stato usato per insegnarci Linux Command quando ero al college .. davvero buono ..


Rif: WikiPedia

Cygwin è un ambiente simile a Unix e un'interfaccia a riga di comando per Microsoft Windows.

L'aspetto positivo è che Cygwin fornisce l'integrazione nativa di applicazioni, dati e altre risorse di sistema basati su Windows con applicazioni, strumenti software e dati dell'ambiente simile a Unix.

Interix
Interix è un componente della versione 3.0 e 3.5 di Services for Unix (SFU) ( quest'ultima è distribuita liberamente ).

Le versioni più recenti di Interix, 5.2 e 6.0, sono componenti delle versioni Windows Server 2003 R2, Windows Vista Enterprise e Ultimate e Windows Server 2008 con il nome SUA (sottosistema per applicazioni basate su Unix) La versione 6.1 è inclusa in Windows 7 ( Enterprise e Ultimate) e Windows Server 2008 R2 (tutte le edizioni)


2

C'è un altro modo per farlo con l' aggiornamento Anniversary per Windows 10 . Ora esiste una shell Bash (Ubuntu) disponibile in Windows.

Per poterlo utilizzare è necessario installare la funzione poiché non è abilitata per impostazione predefinita.

  1. Vai a Control Panel-> Programs-> Turn Windows Features On and Off.

  2. Seleziona la casella di controllo per Windows Subsystem for Linux (Beta). Ciò installerà la funzione e richiederà un riavvio.

Quindi è possibile aprire un prompt dei comandi tramite Esegui -> cmdquindi digitare basho eseguire -> bash.exe.

Questo ti darà una shell bash senza macchina virtuale o Cygwin o virtualbox.


1

Anche se le risposte esistenti qui erano corrette al momento, Windows 10 non includono ora opzionalmente una versione modificata di Ubuntu in esecuzione una shell bash completa .

Una volta installato, puoi aprire un prompt di bash (proprio come faresti con un terminale in OS X / macOS) ed eseguire lo script come al solito, ovvero:

chmod +x myscript.sh
./myscript.sh

Se si desidera eseguire uno script direttamente da Windows, è possibile creare un collegamento nella stessa directory e impostare "Destinazione" su qualcosa del tipo:

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

Se il percorso dello script è relativo alla posizione del collegamento (come nell'esempio sopra), assicurarsi che anche il campo "Avvia in" sia vuoto.


0

Avrai bisogno di CygWin, e quindi credo che sarai in grado di eseguire:

sh yourscript.sh

0

La risposta giusta è stata data in un commento di Kenaniah, devi usare file batch . Devi nominare il tuo file di codice shell su * .bat, quindi puoi eseguirlo facendo clic su di esso o semplicemente digitandone il nome nel terminale. Si noti che il terminale di Windows non funziona esattamente come il terminale unix. Troverai molto aiuto ed esercitazioni per i comandi e la sintassi in tutto il Web. C'è anche la possibilità di utilizzare Windows PowerShell , che sembra essere più unix-like.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.