Dies ist eine allgemeine Prozedur, die Sie für so ziemlich jede Shell verwenden können. In jedem Fall müssen Sie wissen, mit welcher Shell sich der Benutzer normalerweise anmeldet:
path="$(grep $USER /etc/passwd | cut -d ':' -f 7)"
shell="$(basename -- "$path")"
Dann müssen Sie herausfinden, welche Punktedateien diese Shell normalerweise lesen würde:
man $shell
Eine Verknüpfung, die funktionieren könnte, besteht darin, die Punktedateien aufzulisten, die den Shell-Namen enthalten:
ls ~/.*${shell}*
Wenn Sie überprüfen möchten, ob eine der Dateien beim Anmelden tatsächlich gelesen wurde, können Sie einfach den Dateinamen in jeder Datei ausdrucken. Beispiel:
echo .bashrc
Wenn Sie sich anmelden, sollten Sie sehen, welche Dateien gelesen werden, und Sie können entscheiden, welche Sie ändern möchten. Beachten Sie, dass Sie nicht versuchen sollten , Dot-Files echo "$0"
oder ähnliches zu verwenden, da der Wert von $0
davon abhängt, wie die Shell Dot-Files verarbeitet, und irreführend sein kann.
Beachten Sie beim Deklarieren der Variablen "permanent", dass dies nur für die Sitzung gilt. Es gibt keine Möglichkeit, auf den Wert einer Variablen ohne Sitzung zuzugreifen, daher hat sie keine Bedeutung außerhalb einer Sitzung. Wenn Sie "schreibgeschützt" meinen, ist dies von der Shell abhängig. In Bash können Sie Folgendes verwenden:
declare -r VAR
wenn es bereits einen Wert hat, oder
declare -r VAR=value
gleichzeitig zuweisen. Nicht alle Shells verfügen über diese Funktion.
Um eine Variable in den meisten Shells zu deklarieren, sollten Sie einen Variablennamen ( [A-Za-z_][A-Za-z0-9_]*
), gefolgt von einem Gleichheitszeichen (und keinen Leerzeichen um das Gleichheitszeichen) und einem Wert (vorzugsweise in Anführungszeichen gesetzt, sofern der Wert nicht einfach ist [A-Za-z0-9_]+
) verwenden. Zum Beispiel:
name="John Doe"
ip=127.0.0.1
HORRIBLE=1