Điều tôi muốn làm là bao gồm cài đặt từ tệp vào vỏ bash tương tác hiện tại của tôi như sau:Làm thế nào một tập lệnh bash có thể biết được thư mục mà nó được cài đặt khi nó có nguồn gốc. nhà điều hành?
$. /path/to/some/dir/.settings
Vấn đề là tập lệnh .settings cũng cần sử dụng "." toán tử bao gồm các tệp khác như sau:
. .extra_settings
Làm cách nào để tham chiếu đường dẫn tương đối cho tệp .extra_settings trong tệp .settings? Hai tệp này luôn được lưu trữ trong cùng một thư mục, nhưng đường dẫn đến thư mục này sẽ khác nhau tùy thuộc vào nơi các tệp này được cài đặt.
Toán tử luôn biết/path/to/some/dir/như được hiển thị ở trên. Làm thế nào có thể các tập tin .settings biết thư mục mà nó được cài đặt? Tôi không muốn có một quá trình cài đặt ghi lại tên của thư mục được cài đặt.
Hoàn hảo. $ (dirname "$ BASH_SOURCE") là những gì tôi đã chính xác những gì tôi đang tìm kiếm. Vì mục đích của tôi, tôi không quan tâm nhiều đến symlink. Cám ơn vì đã hồi âm. Câu trả lời thực sự tốt ở đây. – Gary
Để giải quyết các liên kết tượng trưng bạn có thể làm: 'dir = $ (dirname $ (readlink -f" $ BASH_SOURCE "))' –