Idézőjelezés, escape használat

Az idézőjelek használata  arra szolgál, hogy a PowerShell számára egyébként valamiféle speciális jelentéssel bíró szövegdarabokat egyszerű karakterláncként olvastassuk be. A PowerShellben kétfajta idézőjel létezik. Az egyik a macskaköröm ( ), a másik az aposztróf ( ). Ez utóbbi nem tévesztendő össze a „visszafele aposztróffal” (` - AltGr + 7), ami az Escape , azaz „hatástalanító” karakter.

PS C:\> $szöveg = "karaktersorozat"

PS C:\> $szöveg

karaktersorozat

PS C:\> "Ez itt egy $szöveg."

Ez itt egy karaktersorozat.

PS C:\> 'Ez itt egy $szöveg'

Ez itt egy $szöveg

PS C:\>

A fenti példában látszik, hogy a macskaköröm () közti szövegben a PowerShell észreveszi a változókat (a $ jel alapján) és behelyettesíti a változó értékét. Az aposztróf ()-nál nem értékel ki semmit sem, minden karaktert szó szerint értelmez.

Hogyan kell például macskaköröm () között akkor $ jelet kiíratni?

PS C:\> "Ez most itt egy `$jel"

Ez most itt egy $jel

Itt jön jól az Escape karakter, ami hatástalanítja a $ alaphelyzet szerinti hatását.

Vigyázat, a $ jel hatása macskakörmök között csak az első szóelválasztó karakterig érvényes! Azaz nem működik így egy adott szöveg hossztulajdonságának kiíratása:

PS C:\> $szó = "ablak"

PS C:\> "Az ablak szó $szó.Length karakter hosszú."

Az ablak szó ablak.Length karakter hosszú.

Hogyan lehet az egész kifejezést kiértékeltetni a macskakörmök között?

PS C:\> "Az ablak szó $($szó.Length) karakter hosszú."

Az ablak szó 5 karakter hosszú.

Azaz a problematikus részt bezárójelezzük, és felhívjuk a PowerShell figyelmét, hogy a változóknál megszokott kiértékelés szerint járjon el ez egész zárójeles kifejezés esetében, ezért elé teszünk még egy $ jelet.

Többsoros szöveget is egyszerűen be tudunk írni:

PS C:\> $hosszú = "1. sor

>> 2. sor

>> 3. sor"

>> 

PS C:\> $hosszú

1. sor

2. sor

3. sor

Egyszerűen Entert nyomunk a sortörésnél. A parancssor értelmező beindul és észreveszi, hogy egy idézőjel után vagyunk, így átvált egy alpromptra és várja a szöveget a következő idézőjelig.

Ha kombináljuk az idézőjeleket egész érdekes eredményre is juthatunk:

[8] PS C:\> $szöveg = "valami"

[9] PS C:\> "ide ágyazom be a szöveget: '$szöveg'"

ide ágyazom be a szöveget: 'valami'

Azaz a [9]-es sorban idézőjelek közötti aposztrófot alkalmaztam, ennek ellenére a változó kiértékelődött az aposztrófok között.



Word To HTML Converter