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?

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).


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.