Come Creare ed Eseguire Script Bash su Windows 10

  • Chris Hoffman

    @chrisbhoffman

  • Aggiornato il 7 Marzo 2018, 2:31 pm EDT

Con l’arrivo di Windows 10 è la shell Bash, è ora possibile creare ed eseguire script Bash su Windows 10. È inoltre possibile incorporare i comandi Bash in un file batch di Windows o script PowerShell.

Anche se sai cosa stai facendo, questo non è necessariamente così semplice come sembra. Windows e UNIX utilizzano caratteri di fine riga diversi e il file system di Windows è accessibile in una posizione diversa nell’ambiente Bash.

Come scrivere uno script Bash su Windows 10

RELATED: Come installare e utilizzare la shell di Linux Bash su Windows 10

Quando si scrivono script di shell su Windows, tenere a mente che Windows e sistemi UNIX-like come Linux utilizzano diversi caratteri di “fine riga” nei file di testo negli script di shell.

Pubblicità

In altre parole, questo significa che non si può semplicemente scrivere uno script di shell nel blocco note. Salva il file nel blocco note e non verrà interpretato correttamente da Bash. Tuttavia, è possibile utilizzare editor di testo più avanzati–ad esempio, Notepad++ consente di dare un file UNIX caratteri di fine riga facendo clic su Modifica > Conversione EOL > Formato UNIX/OSX.

Tuttavia, è meglio scrivere lo script di shell nell’ambiente Bash stesso. L’ambiente Bash basato su Ubuntu viene fornito con entrambi gli editor di testo vi e nano. L’editor vi è più potente, ma se non l’hai mai usato prima, potresti voler iniziare con nano. È più facile da usare se sei nuovo.

Ad esempio, per creare uno script bash in nano, dovresti eseguire il seguente comando in bash:

nano ~/myscript.sh

Questo aprirebbe l’editor di testo Nano puntato su un file chiamato “myscript.sh” nella home directory del tuo account utente. (Il carattere ” ~ ” rappresenta la tua home directory, quindi il percorso completo è /home/username/myscript.sh.)

Avvia lo script della shell con la riga:

#!/bin/bash

RELATED: The Beginner’s Guide to Shell Scripting: The Basics

Advertisement

Inserisci i comandi che vuoi eseguire, ognuno sulla propria riga. Lo script eseguirà ogni comando a turno. Aggiungi un carattere ” # ” prima di una riga per trattarlo come un “commento”, qualcosa che aiuta te e altre persone a capire lo script ma che non viene eseguito come comando. Per trucchi più avanzati, consultare una guida più dettagliata agli script Bash su Linux. Le stesse tecniche funzioneranno in Bash su Ubuntu su Windows.

Si noti che non è possibile eseguire programmi Windows dall’ambiente Bash. Sei limitato ai comandi e alle utilità del terminale Linux, proprio come saresti su un tipico sistema Linux.

Ad esempio, usiamo solo uno script di base “hello world” come esempio qui:

#!/bin/bash # set the STRING variable STRING="Hello World!" # print the contents of the variable on screen echo $STRING

Se stai usando l’editor di testo Nano, puoi salvare il file premendo Ctrl+O e quindi Invio. Chiudere l’editor premendo Ctrl + X.

Crea lo script eseguibile e poi eseguilo

Probabilmente vorrai rendere lo script eseguibile in modo da poterlo eseguire più facilmente. Su Linux, ciò significa che è necessario dare al file di script il permesso eseguibile. Per fare ciò, esegui il seguente comando nel terminale, puntandolo verso il tuo script:

chmod +x ~/myscript.sh

Advertisement

Per eseguire lo script, ora puoi semplicemente eseguirlo nel terminale digitando il suo percorso. Ogni volta che si desidera avviare lo script in futuro, basta aprire la shell Bash e digitare il percorso dello script.

~/myscript.sh

(Se lo script si trova nella directory corrente, si può eseguire con ./myscript.sh)

Come Lavorare Con i File di Windows in uno Script Bash

COLLEGATE: Come Accedere al Tuo Ubuntu Bash File in Windows (e il Vostro Sistema di Windows di Auto in Bash)

Per accedere a Windows i file dello script, è necessario specificare il percorso in /mnt/c, non il loro percorso di Windows. Ad esempio, se si desidera specificare il C:\ Utenti \ Bob \ Download \ test.file txt, è necessario specificare il/mnt/c/Users/Bob/Downloads / test.percorso txt. Consulta la nostra guida alle posizioni dei file nella shell Bash di Windows 10 per maggiori dettagli.

Come incorporare i comandi Bash in uno script Batch o PowerShell

CORRELATI: Come impostare la distribuzione Linux predefinita su Windows 10

Infine, se si dispone di un file batch esistente o di uno script PowerShell in cui si desidera incorporare i comandi, è possibile eseguire i comandi Bash direttamente utilizzando il comandobash -c.

Advertisement

Ad esempio, per eseguire un comando Linux in un prompt dei comandi o in una finestra di PowerShell, è possibile eseguire il seguente comando:

bash -c "command"

Questo trucco consente di aggiungere comandi Bash in file batch o script PowerShell. La finestra della shell Bash apparirà quando è in esecuzione un comando Bash.

Aggiornamento: Se sono installati più ambienti Linux, è possibile utilizzare il comando wslconfig per scegliere l’ambiente Linux predefinito utilizzato quando si esegue il comando bash -c.

Per creare un collegamento a uno script Bash da Windows, basta creare un collegamento come normale. Per la destinazione del collegamento, usa il comandobash -c che abbiamo descritto sopra e indirizzalo allo script Bash che hai creato.

Advertisement

Ad esempio, devi puntare una scorciatoia su ” bash -c "~/myscript.sh" ” per eseguire lo script di esempio sopra. Puoi anche eseguire questo comando da un prompt dei comandi o da una finestra di PowerShell.

Chris Hoffman
Chris Hoffman è redattore capo di How-To Geek. Ha scritto sulla tecnologia per oltre un decennio ed è stato editorialista di PCWorld per due anni. Chris ha scritto per il New York Times, è stato intervistato come esperto di tecnologia su stazioni televisive come NBC 6 di Miami, e ha avuto il suo lavoro coperto da agenzie di stampa come la BBC. Dal 2011, Chris ha scritto oltre 2.000 articoli che sono stati letti quasi un miliardo di volte – – – e questo è solo qui a How-To Geek.Leggi la Biografia completa ”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *