Ich bin MacOS-Neuling. (Ich verwende Mac OS High Sierra 10.13.6) Ich habe eine Software installiert. Sie sagten, um die Software zu initialisieren
. /Pfad/setsas.sh
Ich mache mir keine Gedanken darüber. und Platz, also rannte ich einfach
path/setsas.sh
Es schien zu laufen, aber danach konnte ich keinen Befehl der Software mehr ausführen. Ich stellte fest, dass ich den Befehl sozusagen hätte ausführen sollen, und danach war es in Ordnung. Also was diese. und Leerzeichen bedeuten hier, und raten Sie mal, warum ich zunächst keinen Befehl ausführen konnte, obwohl die Datei zu laufen schien? Ich weiß, dass . bedeutet manchmal den aktuellen Ordner, aber in diesem Fall sieht es nicht so aus.
. /path/setsas.sh
lädt die Variablen und Funktionen aus dem Skript in Ihre aktuelle Shell-Sitzung. Es ist dasselbe wie beim Laufen source /path/setsas.sh
. Das Ausführen path/setsas.sh
auf der anderen Seite erzeugt einen neuen Prozess. Auf die Variablen und Funktionen kann von Ihrer aktuellen Shell aus nicht zugegriffen werden. Deshalb haben die Befehle bei dir nicht funktioniert.
Wenn Sie „einfach einen Befehl eingeben“, verwendet OS/X (wie jedes Unix/Linux) die $PATH
Umgebungsvariable, um die Orte anzugeben, an denen gesucht werden soll, um ihn zu finden – es sei denn, es handelt sich um einen integrierten Bash/Shell-Befehl.
Wenn Sie angeben ./command
, ist dies ein ausdrücklicher Verweis auf eine bestimmte Datei in einem bestimmten Verzeichnis – „der ‚aktuellen‘“. $PATH
wird nicht verwendet, und der Befehl wird nicht als "eingebaut" betrachtet.
Ebenso ~/command
ist ein expliziter Verweis, diesmal "~"
als Abkürzung zu „meinem Home-Verzeichnis“. Noch einmal, $PATH
wird nicht verwendet.
(Unrelated ...)
Der source
Shell-Befehl erfordert einen bestimmten Verweis auf eine Datei und bewirkt, dass die Shell alle Befehle in dieser Datei liest und ausführt. (Wenn Sie beispielsweise Ihre „bash profile“-Datei ändern und sie ohne erneutes Anmelden einbinden möchten, ist dies eine Möglichkeit, dies zu tun.)
IconDaemon
. /path/setsas
nachdem Sie Ihren Fehler erkannt haben?Gordon Davisson