Kihagyás

6. gyakorlat

Szkriptek

sh: parancsértelmező

Forrás fájl: egyszerű szöveges fájl futtatási joggal

Soronként hajtja végre

Parancsok elválasztása: sorvége vagy ;

Első sor:

#!/bin/sh

Parancsok futtatása:

./parancsnév

Változók

Nem valódi változó. Nincs típusa, csak szöveg lehet. Szöveg behelyettesítő.

Kis- és nagybetű érzékenyek

  • env: kiírja a környezeti változókat, az általunk definiált változókat nem
  • set: kiírja az ÖSSZES változót

  • azonosító = érték - változó létrehozása

  • $azonosító - változó tartalmának elérése
  • unset azonosító - változó törlése
  • export azonosító - saját változóból környezeti változót csinál
$ var1="ls -la"
$ $var1
összesen 6
drwxr-xr-x 2 xxxxxx inf2022 2048 okt   20 09:09 .
drwxr-xr-x 6 xxxxxx inf2022 2048 okt   20 08:55 ..
-rwxr-xr-x 1 xxxxxx inf2022   56 okt   20 08:57 elso.sh
-rwxr-xr-x 1 xxxxxx inf2022   21 okt   20 09:09 kulso

Környezeti változók

A rendszerről adnak hasznos infókat.

  • HOME - jelenlegi user home könyvtár helye
  • PWD - a jelenlegi könyvtár abszolútelérési címe
  • PATH - rendszerparancsok keresési elérése
  • USER - jelenleg bejelentkezett felhasználó
  • RANDOM - véletlen számot ad (0-32767)
  • PS1 - jelenlegi prompt
  • SHELL - jelenleg használt parancsértelmező elérése

Ezek kiiratása: echo $VÁLTOZÓ

Mindenkori munkakönyvtár hozzáadása a PATH-hez:

PATH=$PATH:.

Script paraméterek

  • $0 parancs neve (pl. ls) (ez nem valódi paraméter)
  • $1 - $9 paraméterek (pl. [-l, files])
  • $# - paraméterek száma
  • $* - összes paraméter ($1-től), az üres karakterekből kiszedi a kettőzötteket

Első script

#!/bin/sh
echo almafa; echo alatt # ez az első program
almafa
alatt

Értékadás

$ var1=foo
$ echo $var1
foo
$ $var1
-bash: foo: parancs nem található

Parancsok

expr

Kifejezés értékét adja eredményül.

Például:

$ expr 5 + 2
7
$ expr 3 * 2
expr: szintaktikai hiba
$ expr 3 \* 2
6

read

Standard bemenetről olvas egy sor adatot

read <változó neve>

Warn!

read $<változó neve>

Ez a változó értékét veszi a változó nevének, gyakori hiba.

seq

Szekvenciális számok kiírása

seq <alsó határ> <felső határ>