Saya memiliki file kecil yang menginisialisasi tmux
sesi dan kemudian membuat beberapa jendela. Setelah beberapa proses debug dan tweaking bekerja dengan baik sampai saya mengganti nama file teks (dengan tmux
perintah) dari spam
ke xset
:
$ source xset
bash: source: /usr/bin/xset: cannot execute binary file
Saya sekarang telah mengganti nama file kembali dan source spam
berfungsi lagi, tetapi saya bertanya-tanya mengapa ini. File ada di direktori home saya, dan tidak di /usr/bin
.
xset
. Cobasource ./xset
.Jawaban:
yang
bash
sumber perintah internal, pertama mencari nama file dalam PATH, kecuali ada garis miring (/
) dalam nama file.xset
adalah file yang dapat dieksekusi di PATH Anda, karenanya masalahnya.Anda dapat mengeksekusi
source ./xset
atau mengubah opsi sourcepath menjadi tidak aktif dengan:Dari halaman
bash
manual:sumber
The
source
perintah akan :Perilaku ini didefinisikan (untuk
.
, alias) oleh POSIX . Mengapa? Nah, Anda dapat memasukkan skrip konfigurasi yang dapat di-source ke dalamPATH
dan mengaksesnya tanpa jalur yang berkualitas. Untuk mengakses file yang Anda inginkan, berikan jalur absolut atau relatif sebagai gantinya:Semua hal di atas akan berfungsi seperti yang Anda harapkan semula. Anda juga dapat menonaktifkan
sourcepath
denganshopt
.sumber