72 Stimmen

Versteckte Funktionen der Bash

Shell-Skripte werden oft als Klebstoff für die Automatisierung und einfache einmalige Aufgaben verwendet. Was sind Ihre bevorzugten "versteckten" Funktionen der Shell/Skriptsprache Bash?

  • Ein Merkmal pro Antwort
  • Geben Sie ein Beispiel und eine kurze Beschreibung der Funktion, nicht nur einen Link zur Dokumentation
  • Beschriften Sie das Merkmal mit einem fettgedruckten Titel in der ersten Zeile

Siehe auch:

7voto

Sionide21 Punkte 2203

Sie können bestimmte Dateien beim Ausfüllen der Registerkarte ignorieren, indem Sie die FIGNORE variabel.

Wenn Sie zum Beispiel ein Subverion Repo haben und einfacher navigieren wollen, tun Sie

export FIGNORE=".svn"

jetzt können Sie cd ohne blockiert zu werden durch .svn Verzeichnisse.

5voto

Vinko Vrsalovic Punkte 252104

Arithmetik verwenden:

if [[ $((2+1)) = $((1+2)) ]]
    then echo "still ok"
fi

5voto

Tom Punkte 361

Erweiterung der Klammer

Standardentwicklung mit {x,y,z}:

$ echo foo{bar,baz,blam}
foobar foobaz fooblam
$ cp program.py{,.bak}  # very useful with cp and mv

Sequenzerweiterung mit {x..y}:

$ echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
$ echo {a..f}{0..3}
a0 a1 a2 a3 b0 b1 b2 b3 c0 c1 c2 c3 d0 d1 d2 d3 e0 e1 e2 e3 f0 f1 f2 f3

4voto

Thevs Punkte 3129

Inhalt einer Datei abschneiden (Datei auf Null setzen)

> file

Insbesondere ist dies sehr gut geeignet, um Protokolldateien abzuschneiden, wenn die Datei von einem anderen Prozess geöffnet ist, der noch in die Datei schreiben kann.

4voto

Fish Monitor Punkte 3595

Hosenträger anstelle von do y done in der for-Schleife

For Schleifenkörper sind in der Regel in do...done (nur ein Beispiel):

for f in *;
do
    ls "$f";
done

Aber wir können einen C-Stil mit geschweiften Klammern verwenden:

for f in *; {
    ls "$f";
}

Ich finde, das sieht besser aus als do...done und ich bevorzuge diese. Ich habe dies noch in keiner Bash-Dokumentation gefunden, also ist dies wirklich eine versteckte Funktion.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X