Variablen & Rechnungen – Linux Tutorium Part5

Comments: No Comments
This page has hierarchy - Parent page: Linux Tutorium

Variablen und Rechnungen – Linux Tutorium Part5

Machen wir mal weiter mit dem Funktionsumfang der Shellprogrammierung

Natürlich gibt es hier auch Variablen. Speicher Reservierung ist nicht extra nötig, er erfolgt direkt durch die Zuweisung einer Variablen.
Eine Variable wird durch das $ Zeichen gekennzeichnet.
Aber Achtung:

v1=abc;

weißt der Variablen “v1″ also den String (Zeichenkette) “abc” zu. Wenn ihr Leertasten benötigt braucht ihr jedoch

v1="a b c"

also die ” ” ” dazu. Wenn ihr jetzt

 v2=$v1

eingebt habt ihr also in v2 ebenfalls abc stehen. Lasst ihr das $ weg steht in v2 nur “v1″ drinnen. Sieht trivial aus, aber es ist ein häufiger Fehler!

Noch etwas wichtiges!variablen in der unix programmierung shell

v1="hi" # In v1 steht: hi
v1=$v1 # In v1 steht: hi
v1= "$v1" # In v1 steht: hi
v1= '$v1' # In v1 steht: $v1

Die ” ” ” sind entscheidend wenn man Abfragen macht, wenn man eine Variable vergleichen will. Wenn jene ,z.B $1 leer ist würde da stehen ” =0″. Wenn man die Variable mit “$1″ würde immer noch erkannt werden das hier nur kein Inhalt aber eine Variable (eben eine leere) vorhanden ist und somit kein syntax Error erscheinen!
Was zwischen ” ‘ ” ist wird genau so übernommen ohne eine Umwandlung.
Und im Falle oben hätte auch “v1=hi” gereicht da wir ja nicht mal ein Leerzeichen haben.


Reservierte Variablen:

Weiter geht es mit ein paar vordefinierten Parametern:

$0 #beinhaltet den Dateinamen
$1-9 #beinhaltet Parameter die mit dem Aufruf übergeben werden.
$# #beinhaltet viele Parameter mit dem Aufruf übergeben wurden.

Um das ganze etwas zu veranschaulichen schreiben wir doch mal ein kleines Programm, welches mit zwei Zahlen aufgerufen wird und jene Addiert.

Addieren von Zahlen

Rechnung in der Shell Programmierung sind leider nicht ganz so schön zu schreiben wie in andren Sprachen, ich spare es mir ab jetzt auch mal zu schreiben wie man das Script schreibt, speichert, dafür Teile 1-4 lesen..

#!/bin/bash
a=$(expr $1 + $2)
echo $a

Ausgeführt wird das ganze jetzt mit

 ./name zahl1 zahl2 

Wenn ihr keine Zahlen eintippt oder gar keinen Parameter scheißt euch das Script einen Fehler. Ansonsten gibt es die Summe der Zahlen zurück.
Extrem wichtig ist es das ihr dabei auf die Leertasten achtet, ansonsten wird das nix!
Aber was ist hier eigentlich genau los? Die Variable “a” wird angelegt und die Shell wie sie befüllen, erkennt jedoch dan dem “$(” das vorher noch etwas getan werden muss.
Also wird zuerst der Inhalt der Klammern erarbeitet. Hier steht der Befehl “expr ” welcher sagt das, dass was kommt Integer (ganz Zahlen, also ohne Kommaanteil) sind. “$1″ und “$2″ werden ja durch den Aufruf definiert. Das “+” zeigt der Shell das die Zahlen addiert werden sollen. Natürlich gibt es noch die Befehle

- Subtrahieren
/ Dividieren
\* Multiplizieren
% Modulorechnen (Div mit Rest)

Natürlich ist der “\” beim Multiplizieren aufgefallen, dieser wird hier benötigt das der “*” nicht als Sonderzeichen sondern als Rechenzeichen erkannt wird.
Und die Ausgabe des ganzen erfolgt natürlich duch “echo %$a”, probiert auch mal “echo $#” so erhaltet ihr die Zahl “2″, weil ihr ja zwei Argumetne mit übergeben habt.

No Comments - Leave a comment

Leave a comment

Your email address will not be published. Required fields are marked *

*


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Welcome , today is Friday, August 29, 2014