[[oktatas:linux|< Linux]] ====== Ksh ====== * **Szerző:** Sallai András * Copyright (c) 2018, Sallai András * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] * Web: https://szit.hu ===== Bevezetés ===== A ksh másként Korn Shell. A ksh csomaggal telepíthető, és a ksh paranccal indítható. A KornShell David Korn munkája a Bell laboratóriumban, amit az 1980 évek elején írt. Az első fejlesztés a Bourne Shell alapján történt. ===== Kivitel ===== Kivitelhez használjuk a print utasítást: print hello print 35 print "hello" ===== Escape szekvenciák ===== print \" print \\ print \' print "a\tb" print "a\nb" ^ Escape szekvenciák ^^ ^ Escape \\ szekvencia ^ Leírás ^ | \\ | vissza-perjel megjelenítése | | \" | idézőjel megjelenítése | | \' | apósztróf megjelenítése | | \t | tabulátor írása | | \n | sortörés írása | ===== Változók ===== #!/bin/ksh szam=7 echo $szam #!/bin/ksh szam=7 echo ${szam} Az alábbi példában idézőjelbe tettük a változót: szam=7 echo "$szam" Ebben az esetben a változó értéke behelyettesítődik. A következő példában a változót idézőjel helyett aposztrófok közé tettük: szam=7 echo '$szam' Ebben a formában a változó nem helyettesítődik be, annak neve íródik be "$" karakterrel együtt. Egy rendszerváltozó megjelenítése: echo $PWD echo ${PWD} ===== Formázott kimenet ===== print -f '%d\n' 3+4 ===== Bevitel ===== print -f "Szám: " read szam ===== Szelekció ===== #!/bin/ksh set szam = 2 if [ szam -gt 5 ] then print "nagyobb 5-nél" else print "kisebb mint 5" fi #!/bin/ksh print -f "Igen vagy nem vagy kilép (q): " read valasz case $valasz in igen|Igen|i) echo Azt mondta igen ;; no) echo Nemet mondott ;; q*|Q*|k*|K*) exit ;; *) echo Ez az alapértelmezett válasz. echo Nem értem miért nem sikerült echo értelmes választ adni ;; esac ===== Iteráció ===== #!/bin/ksh szam=1 while [[ $szam -ne 0 ]] do print -f "Szám: " read szam done #!/bin/ksh for szam in 1 2 3 4 5 do echo $szam done #!/bin/ksh szam=-1 until [[ szam -eq 0 ]] do print -f "Szám: " read szam done ===== Tömb ===== #!/bin/ksh set -A SZINEK "piros" "kék" "zöld" print ${SZINEK[0]} print ${SZINEK[1]} print ${SZINEK[2]} ===== Irodalom ===== * http://www.bolthole.com/solaris/ksh.html (2018)