de:modul:m122_aws:topics:02_2

Action unknown: linkbutton

Internal reference: topics/02-2.md

Folgende Operator-Typen gibt es:

  • Arithmetische Operatoren
  • String Operatoren
  • Relational Operatoren
  • Boolean Operatoren
  • File Test Operatoren


Nur simple arithmetische Ganzzahl-Berechnungen können mit der Shell berechnet werden. (Fliesskommazahlen nur mit dem Pipe-Tool bc.)

Es gibt in der Bash drei Varianten, um einen arithmetischen Ausdruck zu berechnen:

  1. var=$1)
  2. var=$[ Int-Arithmetik ]

Die wichtigsten Operatoren sind:

Operation Erklärung
a + b Addition (a plus b)
a - b Substraction (a minus b)
a * b Multiplication (a mal b)
a / b Division (Ganzzahl) (a geteilt durch b)
a % b modulo (der Ganzzahlrest von a geteilt durch b)
a * * b Potenz (a hoch b)


Beispiel

$ diff=$(( 100/5 ))
$ echo $diff
20



String-Länge ermitteln

STRING=das ist ein String
echo ${#STRING}            # 18


Index

Finde die numerische Position in $STRING irgendeines Zeichens in $SUBSTRING. Beachte, dass der expr Befehl benutzt wird.

STRING=das ist ein String
SUBSTRING=asd
expr index $STRING $SUBSTRING     # 1 ist die Position des ersten 'd' in $STRING


Substring Extraktion

Extrahiere einen Substring der Länge $LEN von $POS ausgehend aus $STRING. Beachte, dass der erste Buchstabe der 0.te ist.

STRING=das ist ein String
POS=4
LEN=3
echo ${STRING:$POS:$LEN}   # ist

Wenn $LEN weggelassen wird, wird der Substring von $POS bis zum Ende der Zeile extrahiert.

STRING=das ist ein String
echo ${STRING:1}           # $STRING Inhalt, ohne das erste Zeichen
echo ${STRING:14}          # ring


# Code um den Vornamen des Datensatzes zu extrahieren
DATARECORD=last=Clifford,first=Johnny Boy,state=CA
COMMA1=$(expr index $DATARECORD ',')  # 14 position of first comma
CHOP1FIELD=${DATARECORD:$COMMA1}       #
COMMA2=$(expr index $CHOP1FIELD ',')
LENGTH=$(expr $COMMA2   - 6 - 1)
FIRSTNAME=${CHOP1FIELD:6:$LENGTH}      # Johnny Boy
echo $FIRSTNAME


STRING=sein oder nicht sein

Ersetze das erste Vorkommen des Substrings

STRING=sein oder nicht sein
echo ${STRING[@]/sein/essen}        # essen oder nicht sein

Ersetze alle Vorkommen des Substrings

STRING=to be or not to be
echo ${STRING[@]//sein/essen}       # essen oder nicht essen

Lösche alle Vorkommen des Substrings (mit einem leeren String ersetzen)

STRING=sein oder nicht sein
echo ${STRING[@]// nicht/}          # sein oder sein

Ersetze den Substring, wenn er am Anfang des $STRINGs ist

STRING=sein oder nicht sein
echo ${STRING[@]/#sein/jetzt essen} # jetzt essen oder nicht sein

Ersetze den Substring, wenn er am Ende des $STRINGs ist

STRING=sein oder nicht sein
echo ${STRING[@]/%sein/essen}       # sein oder nicht essen

Ersetze den Substring, mit der Ausgabe eines Shellbefehls

STRING=sein oder nicht sein
echo ${STRING[@]/%sein/sein am $(date +%Y-%m-%d)}    # sein oder nicht sein am 20xx-xx-xx

Daniel Garavaldi


1)
Int-Arithmetik
  • de/modul/m122_aws/topics/02_2.txt
  • Zuletzt geändert: 2025/10/30 22:02
  • von dgaravaldi