Ich habe eine kleine Datei, die eine tmux
Sitzung initialisiert und dann einige Fenster erstellt. Nach einigem Debuggen und Optimieren funktionierten die Dinge einwandfrei, bis ich die Textdatei (mit den tmux
Befehlen) von umbenannte spam
in xset
:
$ source xset
bash: source: /usr/bin/xset: cannot execute binary file
Ich habe die Datei jetzt wieder umbenannt und source spam
arbeite wieder, aber ich frage mich, warum das so ist. Die Datei befindet sich in meinem Home-Verzeichnis und nicht in /usr/bin
.
xset
. Versuchen Sie essource ./xset
.Antworten:
Die
bash
interne Befehlsquelle sucht zuerst in PATH nach dem Dateinamen, es sei denn, der Dateiname enthält einen Schrägstrich (/
).xset
ist eine ausführbare Datei in Ihrem PATH, daher das Problem.Sie können
source ./xset
die Quellpfadoption entweder ausführen oder ändern:Von der
bash
Manpage:quelle
Der
source
Befehl wird :Dieses Verhalten wird (für
.
seinen Alias) von POSIX definiert . Warum? Nun, Sie können beschaffbare Konfigurationsskripte einfügenPATH
und ohne qualifizierten Pfad darauf zugreifen. Geben Sie stattdessen einen absoluten oder relativen Pfad an, um auf die gewünschte Datei zuzugreifen:Alle oben genannten Funktionen funktionieren wie ursprünglich erwartet. Sie können auch deaktivieren
sourcepath
mitshopt
.quelle