SHELL script alapok

script fájl elejére:

#!/bin/bash
#!/usr/bin/perl

egyébként az aktuálisan futó shellben fut

"Magic" változók
if then else fi
if [ ... ]; then ... fi

(SPACE számít a [] között!!)

feltételek
Példák
  [ -z "$1" ] && echo "Adj meg parametert"
  if [ ! -z "$1" ] && grep "^$1:" /etc/passwd; then
    echo "Hello World!"
  fi
subshell mikor indul?
ez nem indít subshellt, csak include-olja
File olvasás

read L; → L változóba olvas egy sort a stdin-rõl, 0-val tér vissza, ha OK

Fájlok, könyvtárak
""set"" parancs
sed
sed 's/what/for/g'
Példák
  cat /etc/passwd | sed 's/\([^:]\+\):x:[0-9]\+:[0-9]\+:\([^:]*\).*$/\1 \2/'
  cut -f1,5 -d: /etc/passwd
  cut -c (karakterszám alapján)
  cat /etc/passwd | awk 'BEGIN{FS=":";} {printf("%s %s\n",$1,$5);}'
SHELL Függvények
valami() {függvény kódja... ; return 0}
Billentyűparancsok
CTRL C -> TERM signal
CTRL D -> stream vége (EOF)
CTRL \ -> QUIT signal
CTRL Z -> STOP 
CTRL S -> Scroll Lock, fagyasztja a terminált, Q-val felold
CTRL R -> Elõzõ parancsok között keres
Job management
jobs -> minden processzhez index
bg [index]
fg [index]
CTRL-Z
SCREEN

Paraméterek:

AWK++
cat /etc/passwd | awk 'BEGIN{FS=":";} {printf("%s %s\n",$1,$5);}'

Ne tedd:

#!/bin/awk

De:

  #!/bin/bash
  cat fn | awk '
  BEGIN{
   FS=":"
  }
 
  {
    print $1
  }
  '
GREP

Példa programok

  #!/bin/bash
  if [ "`pidof -x $0 | wc -w `" -gt 1 ]; then
   echo "Futok"
  fi
  #!/bin/bash
  for i in $(seq 15);do
   echo $i;
  done
  #!/bin/bash
  [ -z "$1" ] && echo "Adj meg parametert"
  if [ ! -z "$1" ] && grep -q "^$1:" /etc/passwd; then
    echo "Hello World!"
  fi
  #!/bin/bash
  cat /etc/passwd | while read L; do
	T_USER=`echo $L | cut -f1 -d:`
	T_NAME=`echo $L | cut -f5 -d:`
	echo $T_USER $T_NAME $a
  done
  echo $T_USER	# ez nem ír ki semmit, mert forkol a while a pipe-olások miatt