Ich habe einen Text gelesen und es heißt:
Die .bashrc-Shell-Konfigurationsdatei wird jedes Mal ausgeführt, wenn Sie eine BASH-Shell generieren, z. B. wenn Sie ein Shell-Skript ausführen. Mit anderen Worten, jedes Mal, wenn eine Subshell erstellt wird, wird die .bashrc-Datei ausgeführt. Dadurch werden alle lokalen Variablen oder Aliase exportiert, die Sie in der .bashrc-Shell-Initialisierungsdatei definiert haben.
Ich habe auch gelesen, dass jedes Mal, wenn ich ein Shell-Skript (etwa script1.sh ) ausführe , eine Subshell erstellt wird. Wenn diese Subshell erstellt wird, muss die .bashrc- Datei ausgeführt werden, und daher müssen in .bashrc definierte Aliasnamen in der Subshell verfügbar sein (was nicht der Fall ist). Und wenn Alias (s) in dieser Subshell nicht verfügbar sind, wie sind sie dann in der Hauptshell verfügbar (über die ich mein Skript ausführe)?
interactive shell/subshell
, um die in.bashrc
man bash
zeigt Ihnen das Ausführen von a , dass "Aliase nicht erweitert werden, wenn die Shell nicht interaktiv ist, es sei denn, die Shell-Option expand_aliases wurde mit shopt festgelegt (siehe die Beschreibung von shopt unter SHELL BUILTIN COMMANDS unten)."