Bash

Aus MHC-Wiki

Wechseln zu: Navigation, Suche

Komandoerstzung:

`` = $( )

Schleife für werte mit Leerzeichen:

ls -- *.txt |\
while read i; do
    echo "$i ..."
done

Ohne Echo:

x=`grep muster <<< $variable`

Ohne cut:

read f1 f2 f3 <<< "$string"

Mit andren Feldtrennern:

read -d "." f1 f2 f3 f4 << "$ipstring"

Sed und Grep ersetzen:

${parameter#word}               1. Zeichen löschen
${parameter##word}              alle Zeichen am Anfang löschen

X="aaazzz"; ${X#a}  = "aazzz"
X="aaazzz"; ${X##a} = "zzz"

${parameter%word}               letztes Zeichen löschen
${parameter%%word}              alle Zeichen am Ende löschen

X="aaazzz"; ${X%z}  = "aaxx"
X="aaazzz"; ${X%%z} = "aaa"

${parameter/pattern/string}     erstes pattern durch string ersetzen
${parameter//pattern/string}    alle vorkommen von pattern durch string ersetzen
${parameter/#pattern/string}    pattern muss am Anfang stehen damit es druch string ersetzt wird
${parameter/%pattern/string}    pattern muss am Ende stehen damit es druch string ersetzt wird

X="abcabcabc"; ${X/b/Z}  = "aZcabcabc"
X="abcabcabc"; ${X//b/Z} = "aZcaZcaZc"
X="abcabcabc"; ${X/#a/Z} = "Zbcabcabc"
X="abcabcabc"; ${X/%c/Z} = "abcabcabZ"

Grep-Ersatz:

if [ "$str" != "${str/abc}" ]; then  =  if grep -q "abc" <<< "$str"; then

Ab Bash 4 -[ BASH_VERSION[9] -ge 4 ]

${parameter^pattern}            erstes Zeichen in Grossbuchstaben (ohne pattern, 1. Zeichen)
${parameter^^pattern}           alle Zeichen in Grossbuchstaben

X="abcabc"; ${X^a}  = "Abcabc"
X="abcabc"; ${X^^a} = "AbcAbc"
X="abcabc"; ${X^^}  = "ABCABC"

${parameter,pattern}            erstes Zeichen in Kleinbuchstaben
${parameter,,pattern}           alle Zeichen in Kleinbuchstaben

X="ABCABC"; ${X^a}  = "aBCABC"
X="ABCABC"; ${X^^a} = "aBCaBC"
X="ABCABC"; ${X^^}  = "abcabc"
Navigation