Articles

Skift Etui i Strømshell

Skift Etui i Strømshell

Skift tilfælde i Strømshell

introduktion til skift tilfælde i strømshell

skift funktion i strømshell bruges til at håndtere flere if-udsagn eller i andre termer er det udskiftning af flere betingelser, hvis/ellers hvis / ellers. For at kontrollere en enkelt betingelse i Script eller funktion kan du bruge If/else-sætning, men hvis du vil evaluere mere if-udsagn, skal du bruge Skift.

skift er bedre sammenlignet med flere if-udsagn og let at implementere og enkel brug til kodning. Der er flere betingelser under hver sætning, og når en af dem opfylder, udføres handlingen.

Start dit gratis Datavidenskabskursus

Hadoop, datavidenskab, statistik & andre

syntaks:

Switch (<Value>)
{
<Condition1> {Action1}
<Condition2> {Action2}
}

fuld syntaks:

Switch ( <value> ) {
"String" | Number | Variable | { expression } { statementlist }
default { statementlist }
}

eller

Switch -file {
"String" | Number | Variable | { expression } { statementlist }
default { statementlist }
}

parametre for skift tilfælde i Strømshell

  • regeks: det kaldes også regulært udtryk. Udfører regulære udtryk kontrol mod værdien af betingelsen. Hvis du bruger Regeks, ignoreres jokertegn og nøjagtighed. Også, hvis matchklausulen ikke er en streng, ignoreres denne parameter.
  • jokertegn: angiver, at betingelsen er en jokertegnstreng. Hvis du bruger jokertegn, Regeks og nøjagtighed ignoreres. Også, hvis matchklausulen ikke er en streng, ignoreres denne parameter.
  • præcis: udfører kampen mod den nøjagtige streng. Hvis du bruger eksakt, jokertegn og Regeks ignoreres, og hvis matchklausulen ikke er en streng, ignoreres denne parameter.
  • CaseSensitive: denne parameter kontrollerer den tilstand, der matcher nøjagtigt med den beståede værdi (store og små bogstaver), hvis den ikke stemmer overens, ignoreres denne parameter. Det har også brug for en strengværdi.
  • fil: tager filstien som en inputværdi snarere end en strengværdi. Hvis flere filparametre er bestået, tager det kun den sidste. Hver linje i filen læses og evalueres i forhold til betingelsen, og hvis betingelsen matcher, udfører den denne værdi eller viser en skriftlig meddelelse.

rutediagram

rutediagram

rutediagram

Hvordan fungerer kontakten i Kraftshell?

som vist i ovenstående diagram, når som helst værdi (streng, heltal, float eller andre datatyper), array, jokertegn, filer osv. er bestået, så begynder det at matche betingelser en efter en, og når tilstanden matcher, scriptet udfører den blok. For flere matchende værdier udføres flere scrips-blokke, og hvis der ikke findes nogen matchende værdi, og hvis standardbetingelsen er angivet, udfører den den blok, ellers er der null-output.

eksempler på Skift i Strømshell

lad os se det givne eksempel:

eksempel# 1

1. Enkel omskifterfunktion med streng, heltalsværdi bestået.

kode:

switch (3) {
1 {"One"}
2 {"Two"}
3 {"Three"}
}

Output:

strømshell 1

strømshell 1

kode:

switch("data"){
"abc"{"Abc executed"}
"xyz"{"Xyz Executed"}
"data"{"Data Executed"}
}

Output:

strømshell 2

strømshell 2

nu, hvad hvis parameteren ikke matcher udtrykket. Som et eksempel nedenfor, 5 stemmer ikke overens med nogen af Omskiftningssagerne. I dette tilfælde vil udgangen være null.

kode:

switch (5) {
1 {"One"}
2 {"Two"}
3 {"Three"}
}

for at overvinde ovenstående problem skal standard angives, og standardblokering udføres, når ingen af parameteren matcher.

kode:

switch (5) {
1 {"One"}
2 {"Two"}
3 {"Three"}
default{"No Match Found"}
}

Output:

strømshell 3

strømshell 3

eksempel# 2

lad os se det givne eksempel:

forskel mellem if / else if /else og skift. Fra nedenstående eksempel kan du forstå, hvordan det er nemt at skrive et script med Omskifterfunktionen.

kode:

$time = 3
if($time -eq 1){"It's 1 O'Clock"}
elseif ($time -eq 2) {"It's 2 O'Clock"}
elseif ($time -eq 3) {"It's 3 O'Clock"}
else {"No Match Found"}

$time = 3
switch ($time) {
1 {"It's 1 O'Clock"}
2 {"It's 2 O'Clock"}
3 {"It's 3 O'Clock"}
default{"No Match found"}
}

Output:

powershell 4

powershell 4

Execution time for both the methods.

Code:

$time = 3
Measure-Command {
if($time -eq 1){"It's 1 O'Clock"}
elseif ($time -eq 2) {"It's 2 O'Clock"}
elseif ($time -eq 3) {"It's 3 O'Clock"}
else {"No Match Found"}
}

TotalMilliseconds :

TotalMilliseconds

TotalMilliseconds

Code:

$time = 3
Measure-Command {
switch ($time) {
1 {"It's 1 O'Clock"}
2 {"It's 2 O'Clock"}
3 {"It's 3 O'Clock"}
default{"No Match found"}
}
}

TotalMilliseconds:

strømshell21

strømshell21

forskel: 31.3154 millisekunder

denne forskel bliver stor, når du skriver massivt script eller funktioner inde i kontakten.

1. Skift med Regeks Parameter

Hvis Regeks er nævnt i skift, evaluerer det udtrykket med bestået værdi, og hvis en del af betingelsen matcher, udfører den denne handling.

overvej eksemplet nedenfor.

kode:

Switch ("Donkey"){
"Dog" {"Dog is Mentioned"}
"Cat" {"Cat is Mentioned"}
"Don" {"Donkey is Mentioned"}
"key" {"Donkey is mentioned again"}
default {"Nothing is mentioned"}
}

Output:

strømshell 5

powershell 5strømshell 5

efter tilføjelse af Regeks.

kode:

Switch -Regex ("Donkey"){
"Dog" {"Dog is Mentioned"}
"Cat" {"Cat is Mentioned"}
"Don" {"Donkey is Mentioned"}
"key" {"Donkey is mentioned again"}
default {"Nothing is mentioned"}
}

udgang:

strømshell 6

strømshell 6

2. Skift med jokertegn Parameter

jokertegn fungerer ligner lignende parameter.

kode:

$msg = "Error, WMI connection failed"
Switch -Wildcard ($msg) {
"Error*" {"WMI Error"}
"Warning*" {"WMI Warning"}
"Successful*" {"WMI Connection Successful"}
}

Output:

strømshell 7PNG

strømshell 7PNG

3. Skift med nøjagtig Parameter

nøjagtig funktion er standard i kontakten. Det er ligegyldigt, om du bruger det eller ej. Men når du bruger to parametre på samme tid, har den sidste parameter forrang.

kode:

Switch -Regex -Exact ("Hello"){
"He" {"Hello World"}
"Hi" {"Hi World"}
Default {"No World"}
}

Output:

strømshell 8PNG

strømshell 8PNG

kode:

Switch -Exact -Regex ("Hello"){
"He" {"Hello World"}
"Hi" {"Hi World"}
Default {"No World"}
}

udgang:

strømshell 9PNG

strømshell 9PNG

4. Skift med Filparameter

Du kan angive en filsti direkte til kontakten som en parameter. Du kan bruge fil med en sti til en fil i stedet for at give den et variabelt udtryk.

kode:

Switch -Wildcard -File C:\temp\switchtest.txt {
"*Warning*"{Write-Warning $PSItem}
"*Error*"{Write-Error $PSItem}
}

Output:

skift i kraftshell. 2PNG

omstillingshus i kraftshell. 2PNG

Du kan bruge $PSItem eller $_ til at arbejde med aktuelle emner.

5. Skift med CaseSensitive parameter

når du bruger en Casesensitive parameter i en kontakt, skal betingelsen matche nøjagtigt efter hvert tegn.

kode:

switch -CaseSensitive ("Hello") {
"HeLlo" {"This is different HeLlo"}
Default {"This is not Matching"}
}

Output:

strømshell 10png

strømshell 10PNG

6. Passing Array værdi for at skifte funktion

simpelt Array :

switch (10,12) {
9 { "Nine" }
10 { "Ten" }
11 {"Eleven"}
12 {"Twelve"}
Default {"None"}
}

Output:

passing array

passing array

passerer Array objekt

kode:

$VMOps = @(
"VM_Delete"
"VM_Create"
)
switch ($VMops) {
"VM_Delete" {"VM Delete Operation"}
"VM_Create" {"VM Create Operation"}
"VM_Shutdown" {"VM Shutdown Operation"}
}

udgang:

strømshell 12png

strømshell 12png

7. Break tilstand

Når du angiver break tilstand, derefter Operation pauser i denne løkke og kan ikke fortsætte yderligere udførelse. Dette er ret nyttigt, når du ikke vil kontrollere yderligere trin, når tilstanden tilfredsstiller, og udførelsestiden bliver hurtigere.

kode:

$VMOps = @(
"VM_Delete"
"VM_Create"
)
switch ($VMops) {
"VM_Delete" {
"VM Delete Operation"
break }
"VM_Create" {
"VM Create Operation"
break}
"VM_Shutdown" {
"VM Shutdown Operation"
break
}
}

Output:

breakcondition

breakcondition

Hvis du bemærker, er der kun en blok udført, og så går den ud af omskifterfunktionen.

8. Fortsæt betingelse

Fortsæt parameter bruges til at springe den særlige iteration. For eksempel, hvis der er 3 elementer, der skal matche, udføres det først, og når tilstanden matcher, springer den over andre trin og går videre til næste trin.

kode:

switch ('Hello') {
"hello" {'First Block Executes'
continue}
'HELLO' {'Second Block Executes'
continue }
'HeLLo' {'Third Block Exectues'
continue }
Default {'Nothing executed'}
}

Output:

fortsæt tilstand

fortsæt tilstand

som du kan se, er der kun et argument bestået (‘Hej’), det udfører kun den første blok, fordi udtrykket matcher, og der ikke er noget andet argument tilbage at udføre, scriptet slutter.

  • endnu et blandet eksempel på pause og fortsæt med kontakten.

kode:

switch ('Alpha','Beta','Delta') {
"Alpha" {'First Block Executes'
continue}
'Beta' {'Second Block Executes'
break }
'Delta' {'This will not Execute'}
}

Output:

strømshell 15png

strømshell 15png

konklusion

alt i alt er kontakten langt bedre end at implementere flere If-betingelser og giver mere funktionalitet og reduktion i eksekveringstid.

Anbefalede artikler

dette har været en guide til at skifte sag i Kraftshell. Her diskuterer vi også syntaksen, parametre, og eksempler på Skift sag i Kraftshell. Du kan også se på følgende artikler for at lære mere –

  1. hvad er Shell Scripting?
  2. komplet vejledning til funktion i Shell-Scripting
  3. Lær ekkoet i Shell-Scripting
  4. eksempler på skiftetaske i Shell-Scripting
  5. komplet vejledning til funktion i Shell-Scripting
  6. Lær ekkoet i Shell-Scripting
  7. eksempler på skiftetaske i Shell-Scripting
  8. Python-skiftetaske/hvordan implementeres?
3 aktier