/ HomePage / Computer / Software / Programmierung / Schnipsel
Bash Schnippsel und Beispiele
Diese Schnippsel und Code-Beispiele beziehen sich allein auf Shellscripte der Bash
String in lower case wandeln
newstring=$(echo "$oldstring" | tr [:upper:] [:lower:]) # old: 'A-Z' 'a-z'
if then else
if [condition]; then
expression(s)
[ elif [condition]; then
... ]²
[ else
... ]³
fi
- ²) Darf beliebig oft vorkommen
- ³) Darf genau einmal vorkommen
Funktionen
function foo()
{
...
# return value
echo '123'
}
# function call
RESULT=`eval foo "parameter"`
wie alt ist eine Datei
FILE=<Datei>
HOWOLD=$(( `date +'%s'` - `stat -c %Y ${FILE}` ))
Die Variable $HOWOLD enthält jetzt das alter der Datei in Sekunden.
Beispiel wie es anwendbar ist:
if [ $HOWOLD -gt 3600 ]; then
echo "Datei alter als eine Stunde."
fi
Dateien umbennen von klein nach groß
for f in * ; do n=`ls $f | tr [:lower:] [:upper:]`; mv $f $n; done
funktioniert. Gefunden: hier
Array Zuweisung
Einem Bash Array etwas zuweisen geht mittels '=()' nur dann versteht die Bash es auch als Array, sonst ist es nur 'ein' String. Die außen liegenden Klammern sind somit überaus wichtig.
BIGFILES=( $(ls -1 -t /alias/Gentoo/snapshots/*.bz2) )
Der Zugriff funktioniert jetzt über den Index. Der beginnt bei 0.
Damit hat man jetzt die zeitlich zuletzt angelegte Bzip2 Datei in der Variable 'BIGFILE'. Was genau passiert, wenn der Pfad Spaces enthält ist nicht geprüft und wird es auch nicht.
Anzahl der Codezeilen finden
Hier mal als Beispiel für java
find . -type f -name '*.java' | xargs wc -l
Das Ergebnis ist eine Liste sämtlicher java Dateien mit der Ausgabe der jeweiligen Zeilen der einzelnen Dateien und zusätzlich eine Gesamtsumme. Also wieviele Zeilen sämtliche dateien enthalten.
siehe auch