Start Web Helpdesk Projekte WB-einfach WB-Multi

Linux . . . ShellScript  Helpdesk Inhalt-Helpdesk Unten PDF

ShellScript

Inhalt

1.Variablen
2.sed
2.1Zeile löschen
2.2Text ersetzen
3.tr
3.1Zeilenumbruch entfernen
3.2groß und kleinschreibung tauschen
4.awk
4.1nur string 2 anzeigen
4.29 Zeichen ab Stelle 291 lesen
4.3nächste zeile in $0 laden
5.tail
5.1letzte Zeile auswählen
6.head
6.1erste n zeilen lesen
7.sort
8.read
8.1Zeilenweise lesen
9.case
10.enscript
10.1Ascii in ps und pdf
11.cut
12.Array
13.Malen im script
14.Buntes Echo
14.1Format
14.2Schriftfarbe
14.3Hintergrundfarbe


Variablen

intern

echo Uebergabeparameter: $*
echo user ist: $USER
echo shell ist: $SHELL
echo Parameter 1 ist: $1
echo Prozedurname ist: $0
echo Prozessnummer ist: $$
echo Anzahl der Parameter ist: $#
a=17.89        # ohne Luecken am = Zeichen

system

echo $PPID >/daten/public/drucker.txt
echo $UID  >>/daten/public/drucker.txt
echo $HOME >>/daten/public/drucker.txt
echo $HOSTNAME >>/daten/public/drucker.txt
echo $HOSTTYPE >>/daten/public/drucker.txt
echo $MACHTYPE >>/daten/public/drucker.txt
echo $OSTYPE >>/daten/public/drucker.txt
echo $$ >>/daten/public/drucker.txt
echo $SECONDS >>/daten/public/drucker.txt

http://www.linuxtopia.org/online_books/advanced_bash_scripting_guide/internalvariables.html

http://de.selfhtml.org/servercgi/cgi/umgebungsvariablen.htm

sed

Zeile löschen

Alle Zeilen mit hallo löschen

 sed '/hallo/ d '

Text ersetzen

In allen Zeilen Hallo mit Hellau ersetzen.

 sed "s/Hallo/Hellau/g"

Punkt ist schwerer..

 s/\./ /g

Nur zeilen mit ich ändern

 sed -e '/ich/s/$1500/$3000/g'

wenn auch / weg müssen geht auch

  sed "s.Hallo.Hellau."

sed kann auch mehreres auf einmal wenns mit semikolon getrennt ist:

 sed "s/ersteswird/das/;s/andere/jenes/g"

Wems aufgefallen ist, beim ersten ist es ohne g , das steht für ALLE


tr

Zeilenumbruch entfernen

#zeilenumbruch tr -d '\r' oder tr -d '\n'

 tr -d '\r' 
 tr -d '\n'

groß und kleinschreibung tauschen

 tr A-Z a-z
 tr a-z A-Z
 tr "[:upper:]" "[:lower:]"
 tr "[A-Z]" "[a-z]"

awk

nur string 2 anzeigen

 awk '{print $2}'

9 Zeichen ab Stelle 291 lesen

 BaCo=`echo "$line" | awk '{print substr($0, 291, 9)}'` # "" wegen leerzeichen

nächste zeile in $0 laden

 awk '/eth0/{getline; print $0}'

Berechnung anhand der Länge einer Variablen

 let lange=`echo $Nummer | awk '{print length($Nummer)}'`*10+100

tail

letzte Zeile auswählen

 wer=`tail -n 1 $PC`

head

erste n zeilen lesen

 head -n 8 /daten/www/htdocs/wetter.htm

sort

Datei sortieren, Spalte 1 nehmen und doppelte entfernen

 sort -f $tmp | awk '{print $1}'| uniq   >$testsoft 

read

Zeilenweise lesen

 cat $dadei |while read line
	do
		irgendwas
	done

case

 case $Stax in
	11) Stay="OK"
	;;
	69) Stay="ZUG"
	;;
	*) Stay="NIX" # alles andere
 esac

enscript

Ascii in ps und pdf

 enscript -B testfile.txt -p- | ps2pdf - testfile.pdf
 cal 2013 | enscript | lpr -p lp98

cut

 bor=`echo $line | cut -d '|' -f 3 `
 id="$( cut -d '|' -f 2 <<< "$line" )"
 echo dingensens|cut -c 1-5

Array

 $ set -A array "one two three four"
 $ echo ${array[0]}
 one two three four

so the command given in the OP results in an array with a single element. To replicate that behavior: Code:

 $ string="one two three four"
 $ set -A array "$string"
 $ echo ${array[0]}
 one two three four

but if you want to split it into separate array elements do: Code:

 $ string="one two three four"
 $ set -A array $string
 $ echo ${array[0]}
 one

if this is not working for you, you probably have IFS set wrong: Code:

 $ IFS=""
 $ string="one two three four"
 $ set -A array $string
 $ echo ${array[0]}
 one two three four

Malen im script

 convert -size "1000x1000" xc:white  \
  -fill black -draw "line 50,90 200,600"  \
  -fill grey -draw "line 200,600 600,300"  \
  test.png

oder transparent:

 convert -size "1000x1000" xc:none  \
  -fill black -draw "line 50,90 200,600"  \
  -fill grey -draw "line 200,600 600,300"  \
  test.png

Buntes Echo

Format

Einstellig ist die Schriftform:


  echo -e "\e[0m" #Normal
  echo -e "\e[1m" #Bold
  echo -e "\e[4m" #Underline
  echo -e "\e[7m" #Invert
  echo -e "\e[8m" #Hidden
  echo -e "\e[0m" #Normal

Schriftfarbe

Erste stelle 3 oder 9 ist die Schriftfarbe wobei x9 jeweils default ist.


  echo -e "\e[30m" #Black
  echo -e "\e[31m" #Red
  echo -e "\e[32m" #Green
  echo -e "\e[33m" #Yellow
  echo -e "\e[34m" #Blue
  echo -e "\e[35m" #Magenta
  echo -e "\e[36m" #Cyan
  echo -e "\e[37m" #Light Gray
  echo -e "\e[39m" #Normal
  echo -e "\e[90m" #Dark Gray
  echo -e "\e[91m" #Light Red
  echo -e "\e[92m" #Light Green
  echo -e "\e[93m" #Light Yellow
  echo -e "\e[94m" #Light Blue
  echo -e "\e[95m" #Light Magenta
  echo -e "\e[96m" #Light Cyan
  echo -e "\e[97m" #White

Hintergrundfarbe

Erste Stelle eine 4 oder 10 ist die Hintergrundfarbe und die 9 hinetn wieder default.


  echo -e "\e[40m" #Black
  echo -e "\e[41m" #Red
  echo -e "\e[42m" #Green
  echo -e "\e[43m" #Yellow
  echo -e "\e[44m" #Blue
  echo -e "\e[45m" #Magenta
  echo -e "\e[46m" #Cyan
  echo -e "\e[47m" #Light Gray
  echo -e "\e[49m" #Normal
  echo -e "\e[100m" #Dark Gray
  echo -e "\e[101m" #Light Red
  echo -e "\e[102m" #Light Green
  echo -e "\e[103m" #Light Yellow
  echo -e "\e[104m" #Light Blue
  echo -e "\e[105m" #Light Magenta
  echo -e "\e[106m" #Light Cyan
  echo -e "\e[107m" #White


www.bittnermichael.de
Datenschutz Impressum