Skip to main content

Beginners Guide to Bash - Hej World

Hello World - Machine Learning Recipes #1 (April 2025)

Hello World - Machine Learning Recipes #1 (April 2025)
Anonim

Der er mange guider på internettet, der viser, hvordan man opretter Shell-scripts ved hjælp af BASH, og denne vejledning har til formål at give et lidt andet spin, fordi det er skrevet af en person, der har meget lidt shell scripting-oplevelse.

Nu tror du måske, at dette er en dum idé, men jeg finder ud af, at nogle guider snakker med dig som om du allerede er en ekspert og andre guider tager for lang tid til at skære til jagten.

Mens min LINUX / UNIX shell scripting oplevelse er begrænset, er jeg en softwareudvikler ved handel, og jeg er en dab-hånd på scripting-sprog som PERL, PHP og VBScript.

Punktet i denne vejledning er, at du vil lære som jeg lærer, og enhver information jeg henter, jeg vil videregive til dig.

Kom i gang

Der er naturligvis en masse teori, som jeg kunne videregive til dig med det samme som at beskrive de forskellige typer skal og fordelene ved at bruge BASH over KSH og CSH.

De fleste mennesker, når de lærer noget nyt, vil hoppe ind og starte med nogle praktiske lektioner først og med det i tankerne, vil jeg ikke bore dig med trivia, der ikke er vigtigt lige nu.

Alt du behøver for at følge denne vejledning er et tekstredigeringsprogram og en terminal, der kører BASH (standardskallen på de fleste Linux-distributioner).

Tekstredaktører

Andre vejledninger, som jeg har læst, har foreslået, at du har brug for en tekstredigerer, der indeholder farvekodning af kommandoer, og de anbefalede redaktører er enten VIM eller EMACS.

Farvekodning er flot, da det fremhæver kommandoer, mens du skriver dem, men for den absolutte begynder kan du bruge de første par uger til at lære VIM og EMACS uden at skrive en enkelt kode.

Ud af de to foretrækker jeg EMACS, men for at være ærlig foretrækker jeg at bruge en enkel editor som nano, gedit eller leafpad.

Hvis du skriver scripts på din egen computer, og du ved, at du altid har adgang til et grafisk miljø, så kan du vælge den editor, der fungerer bedst for dig, og den kan enten være grafisk som GEdit eller en editor, der kører direkte i terminalen såsom nano eller vim.

I denne vejledning skal jeg bruge nano, da den installeres nativt på de fleste Linux-distributioner, og det er derfor sandsynligt, at du får adgang til det.

Åbning af et terminalvindue

Hvis du bruger en Linux-distribution med grafisk desktop som Linux Mint eller Ubuntu, kan du åbne et terminalvindue ved at trykke på CTRL + ALT + T.

Hvor skal du placere dine scripts

I denne vejledning kan du sætte dine scripts i en mappe under din hjemmemappe.

Inden for et terminalvindue skal du sørge for at du er i din hjemmemappe ved at skrive følgende kommando:

cd ~

Cd-kommandoen står for ændringsmappe og tilde (~) er en genvej til din hjemmemappe.

Du kan kontrollere, at du er på det rigtige sted ved at skrive følgende kommando:

pwd

Pwd-kommandoen fortæller dig din nuværende arbejdsmappe (hvor du er i katalogtræet). I mit tilfælde er det returneret / hjem / gary.

Nu vil du selvfølgelig ikke ønsker at sætte dine scripts lige ind i hjemmemappen, så opret en mappe, der hedder scripts, ved at skrive følgende kommando.

mkdir scripts

Skift til den nye script-mappe ved at skrive følgende kommando:

cd scripts

Dit første script

Det er sædvanligt, når man lærer at programmere for at få det første program til at skrive ordene "Hello World".

Indtast følgende kommando fra din scripts-mappe:

nano helloworld.sh

Indtast nu følgende kode i nano-vinduet.

#! / bin / bash echo "hej verden"

Tryk på CTRL + O for at gemme filen og CTRL + X for at afslutte nano.

Selve scriptet er sammensat som følger:

#! / Bin / bash skal inkluderes øverst på alle de scripts, du skriver, da det lader tolke og operativsystemet vide, hvordan man håndterer filen. Husk bare at sætte det ind og glemme hvorfor du gør det.

Den anden linje har en enkelt kommando kaldet ekko, som udsender den tekst, der umiddelbart følger den.

Bemærk, at hvis du vil vise mere end et ord, skal du bruge dobbelt citater (") omkring ordene.

Du kan nu køre scriptet ved at skrive følgende kommando:

sh helloworld.sh

Ordene "hallo verden" skal vises.

En anden måde at køre scripts på er som følger:

./helloworld.sh

Chancerne er, at hvis du kører den kommando i din terminal med det samme, får du en tilladelsesfejl.

For at give tilladelser til at køre scriptet på denne måde, skriv følgende:

sudo chmod + x helloworld.sh

Så hvad der faktisk skete der? Hvorfor kunne du køre sh helloworld.sh uden at ændre tilladelser, men at køre ./helloworld.sh forårsagede et problem?

Den første metode indlæser bash-tolken, der tager helloworld.sh som et input og udarbejder hvad der skal gøres med det. Bash tolken har allerede tilladelser til at køre og skal bare køre kommandoer i scriptet.

Den anden metode gør det muligt for operativsystemet at finde ud af, hvad man skal gøre med scriptet, og derfor kræver det en eksekverbar bit for at kunne udføres.

Ovennævnte script var ok, men hvad sker der, hvis du vil vise citatmærkerne?

Der er forskellige måder at opnå dette på. For eksempel kan du sætte en tilbageslag for citatmærkerne som følger:

ekko "hej verden "

Dette vil producere output "hej verden".

Vent lidt, hvad hvis du vil vise "hallo verden "?

Nå kan du også undslippe flugtpersonerne

echo "" hej verden ""

Dette vil producere output "hej verden ".

Nu ved jeg hvad du tænker på. Men jeg vil virkelig vise "" hej verden ""

Brug af ekko med alle disse flugtpersoner kan blive ret dumt. Der er en alternativ kommando, du kan bruge kaldet printf.

For eksempel:

printf '% s n' ' "" hej verden ""'

Bemærk, at den tekst, vi ønsker at vise, er mellem enkelt citater. Printf-kommandoen udsender tekst fra dit script. % S betyder at den vil vise en streng, n udsender en ny linje.

Resumé

Vi har ikke rigtig dækket meget grund i del en, men forhåbentlig har du dit første script til at fungere.

I næste del vil vi se på at forbedre på hello world script for at vise tekst i forskellige farver, acceptere og håndtere input parametre, variabler og kommentere din kode.