30Jun
Med ankomsten av Windows 10s Bash-skall kan du nå lage og kjøre Bash shell-skript på Windows 10. Du kan også inkludere Bash-kommandoer i en Windows-batchfil eller PowerShell-skript.
Selv om du vet hva du gjør, er dette ikke nødvendigvis så enkelt som det virker. Windows og UNIX bruker ulike end-of-line-tegn, og Windows-filsystemet er tilgjengelig på et annet sted i Bash-miljøet.
Hvordan skrive et Bash-script på Windows 10
Når du skriver shell-skript på Windows, må du huske at Windows og UNIX-lignende systemer som Linux bruker forskjellige "end of line" -karakterer i tekstfiler i shell-skript.
Med andre ord betyr dette at du ikke bare kan skrive et shell-skript i Notisblokk. Lagre filen i Notisblokk og det vil ikke tolkes riktig av Bash. Du kan imidlertid bruke mer avanserte tekstredigerere, for eksempel kan Notepad ++ gi deg en fil UNIX end-of-line-tegn ved å klikke Rediger & gt;EOL Konvertering & gt;UNIX / OSX-format.
Det er imidlertid bedre å bare skrive shell-skriptet i Bash-miljøet selv. Det Ubuntu-baserte Bash-miljøet kommer med både vi og nano tekstredigerere. Vi-editoren er kraftigere, men hvis du aldri har brukt den før, kan du starte med nano. Det er lettere å bruke hvis du er ny.
Hvis du for eksempel vil lage et bash-skript i nano, vil du kjøre følgende kommando i bash:
nano ~ / myscript.shDette vil åpne Nano-tekstredigereren pekt på en fil som heter "myscript.sh" i brukeren dinkontoens hjemmekatalog.("~" Tegnet representerer hjemmekatalogen din, så hele banen er /home/username/ myscript.sh.)
Start shell-skriptet ditt med linjen:
#!/bin/ bashSkriv inn kommandoene du vil kjøre, hver på sin egen linje. Skriptet kjører hver kommando i sin tur. Legg til et "#" tegn før en linje for å behandle den som en "kommentar", noe som hjelper deg og andre folk til å forstå skriptet, men som ikke kjøres som en kommando. For mer avanserte triks, se en mer detaljert veiledning til Bash-skript på Linux. De samme teknikkene vil fungere i Bash på Ubuntu på Windows.
Vær oppmerksom på at det ikke er mulig å kjøre Windows-programmer fra Bash-miljøet. Du er begrenset til Linux-terminalkommandoer og -verktøy, akkurat som du ville være på et typisk Linux-system.
For eksempel, la oss bare bruke et grunnleggende "hello world" -skript som et eksempel her:
#!/bin/ bash # sett STRING-variabelen STRING = "Hello World!"# skriv ut innholdet i variabelen på skjermen ekko $ STRINGHvis du bruker Nano teksteditoren, kan du lagre filen ved å trykke Ctrl + O og deretter Enter. Lukk editoren ved å trykke Ctrl + X.
Gjør skriptet kjørbart og kjør det
Du vil nok ha gjort skriptet kjørbart slik at du kan kjøre det lettere. På Linux betyr det at du må gi skriptfilen den kjørbare tillatelsen. For å gjøre det, kjør følgende kommando i terminalen, peker på skriptet:
chmod + x ~ / myscript.shFor å kjøre skriptet, kan du nå bare kjøre det i terminalen ved å skrive inn banen. Når du vil starte skriptet i fremtiden, bare åpne Bash-skallet og skriv banen til skriptet.
~ / myscript.sh( Hvis skriptet er i gjeldende katalog, kan du kjøre det med. /myscript.sh)
Slik jobber du med Windows-filer i et Bash-skript
For å få tilgang til Windows-filer i skriptet, Jeg må spesifisere veien under /mnt/ c, ikke deres Windows-bane. Hvis du for eksempel vil spesifisere filen C: \ Users \ Bob \ Downloads \ test.txt, må du spesifisere /mnt/c/Users/Bob/Downloads/ test.txt-banen. Se vår guide til filplasseringer i Windows 10s Bash-skall for mer informasjon.
Slik bygger du inn baskommandoer i et batch eller PowerShell-script
Til slutt, hvis du har en eksisterende batchfil eller PowerShell-skript du vil inkorporere kommandoer inn, kan du kjøre Bash-kommandoer direkte ved hjelp av bash -c-kommandoen.
Hvis du for eksempel skal kjøre en Linux-kommando i et kommandoprompt eller PowerShell-vindu, kan du kjøre følgende kommando:
bash -c "kommando"Dette trikset lar deg legge til Bash-kommandoer i batchfiler eller PowerShell-skript. Bash-skallvinduet vises når en Bash-kommando kjører.
Hvis du vil opprette en snarvei til et Bash-skript fra Windows, kan du bare opprette en snarvei som vanlig. For snarveienes mål, bruk bash -c kommandoen vi skisserte over og pek den på Bash-skriptet du opprettet.
For eksempel vil du peke på en snarvei på "bash -c" ~ / myscript.sh "" for å kjøre eksempelskriptet ovenfor. Du kan også bare kjøre denne kommandoen fra et Command Prompt eller PowerShell-vindu også.