Warum ist die Standardeinstellung .bashrc so eingestellt, dass sie sofort zurückgegeben wird, wenn sie nicht interaktiv ausgeführt wird?

7

In Ubuntu Standard .bashrc gibt es Folgendes:

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

Weiß jemand warum das so ist? Gibt es etwas im bashrc, das schlecht ausgeführt werden kann, wenn die Shell nicht interaktiv ausgeführt wird?

Kenny Ho
quelle

Antworten:

5

Der Sinn der .bashrc-Datei besteht darin, dass die Shell für interaktive Benutzer bequemer eingerichtet wird. Hilfreicher Alias, hübsche Farben, nützliche Eingabeaufforderungen, allgemeine Umgebungsvariablen, so etwas.

Und einige dieser Annehmlichkeiten könnten nicht interaktive Skripte beschädigen. Zum Beispiel:

`alias rm='rm -i'`

Würde nicht nicht interaktiv funktionieren (danke zwets).

Superdesk
quelle
Was ich nicht verstehe: Wenn Bash nicht als interaktive Shell gestartet .bashrcwird, wird es trotzdem nicht gelesen, oder? Ich habe die Zeile echo ".bashrc is being sourced"in meine .bashrcvor dem [ -z "$PS1" ] && returnund lief dann bash -c "echo"und ist nicht zu sehen ...
Stefan Hamcke
Okay, ich könnte es natürlich tun bash -c "source ~/.bashrc", dann wird es bezogen :-)
Stefan Hamcke