30Jun
Med ankomsten af Windows 10s Bash-shell kan du nu oprette og køre Bash shell-scripts på Windows 10. Du kan også inkorporere Bash-kommandoer i en Windows-batchfil eller PowerShell-script.
Selvom du ved hvad du laver, er det ikke nødvendigvis så enkelt som det ser ud til. Windows og UNIX bruger forskellige end-of-line-tegn, og Windows-filsystemet er tilgængeligt på en anden placering i Bash-miljøet.
Sådan skrives et Bash-script på Windows 10
Når du skriver shell-scripts på Windows, skal du huske på, at Windows og UNIX-lignende systemer som Linux bruger forskellige "slutningen af linjens" tegn i tekstfiler i shell-scripts.
Med andre ord betyder det, at du ikke blot kan skrive et shell script i Notesblok. Gem filen i Notesblok, og den bliver ikke fortolket korrekt af Bash. Du kan dog bruge mere avancerede tekstredigerere, f.eks. Notepad ++ giver dig mulighed for at give en fil UNIX end-of-line-tegn ved at klikke på Rediger & gt;EOL Konvertering & gt;UNIX / OSX-format.
Det er dog bedre at bare skrive shell scriptet i selve Bash miljøet. Det Ubuntu-baserede Bash-miljø leveres med både vi og nano tekstredaktører. Vi-editoren er mere kraftfuld, men hvis du aldrig har brugt det før, kan du starte med nano. Det er nemmere at bruge, hvis du er ny.
Hvis du f.eks. Vil oprette et bash script i nano, skal du køre følgende kommando i bash:
nano ~ / myscript.shDette vil åbne Nano teksteditoren peget på en fil med navnet "myscript.sh" i din brugerkontoens hjemmemappe.("~" Tegnet repræsenterer dit hjemmekatalog, så den fulde sti er /home/username/ myscript.sh.)
Start din shell script med linjen:
#!/bin/ bashIndtast de kommandoer, du vil køre, hver på sin egen linje. Skriptet kører hver kommando igen. Tilføj et "#" tegn før en linje for at behandle det som en "kommentar", noget som hjælper dig og andre mennesker med at forstå scriptet, men som ikke køres som en kommando. For mere avancerede tricks, se en mere detaljeret vejledning til Bash-scripts på Linux. De samme teknikker vil fungere i Bash på Ubuntu på Windows.
Bemærk, at der ikke er mulighed for at køre Windows-programmer inden for Bash-miljøet. Du er begrænset til Linux-terminalkommandoer og -funktioner, ligesom du ville være på et typisk Linux-system.
For eksempel, lad os bare bruge et grundlæggende "hello world" script som et eksempel her:
#!/bin/ bash # indstil STRING-variablen STRING = "Hello World!"# udskrive indholdet af variablen på skærm ekko $ STRINGHvis du bruger Nano teksteditoren, kan du gemme filen ved at trykke på Ctrl + O og derefter Enter. Luk editoren ved at trykke på Ctrl + X.
Gør scriptet eksekverbart og kør det så
Du vil nok have gjort scriptet eksekverbart, så du kan køre det lettere. På Linux betyder det, at du skal give scriptfilen den eksekverbare tilladelse. For at gøre det skal du køre følgende kommando i terminalen og pege på scriptet:
chmod + x ~ / myscript.shFor at køre scriptet kan du nu bare køre det i terminalen ved at skrive sin sti. Når du vil starte scriptet i fremtiden, skal du bare åbne Bash-skalen og skrive stien til scriptet.
~ / myscript.sh( Hvis scriptet er i det nuværende bibliotek, kan du køre det med. /myscript.sh)
Sådan arbejder du med Windows-filer i et Bash-script
For at få adgang til Windows-filer i scriptet, Du skal angive deres sti under /mnt/ c, ikke deres Windows-sti. For eksempel, hvis du ønskede at angive filen C: \ Users \ Bob \ Downloads \ test.txt, skal du angive /mnt/c/Users/Bob/Downloads/ test.txt-stien. Se vores guide til filplaceringer i Windows 10s Bash-shell for flere detaljer.
Sådan integreres baskommandoer i et batch eller PowerShell-script
Endelig, hvis du har en eksisterende batchfil eller PowerShell-script, du vil indarbejde kommandoer i, kan du køre Bash-kommandoer direkte ved hjælp af bash -c kommandoen.
Hvis du f.eks. Vil køre en Linux-kommando i et kommandoprompt eller PowerShell-vindue, kan du køre følgende kommando:
bash -c "command"Dette trick giver dig mulighed for at tilføje Bash-kommandoer i batchfiler eller PowerShell-scripts. Bash shell vinduet vises, når en Bash-kommando kører.
Hvis du vil oprette en genvej til et Bash-script fra Windows, skal du bare oprette en genvej som normal. For genvejens mål skal du bruge kommandoen bash -c, som vi skitserede ovenfor, og pege på det i det Bash-script, du oprettede.
Du vil for eksempel pege på en genvej på "bash -c" ~ / myscript.sh "" for at køre eksemplet script ovenfor. Du kan også bare køre denne kommando fra et kommandoprompt eller et PowerShell-vindue.