Tôi có một số nội dung tôi muốn thực hiện trong .bashrc mà tôi muốn tồn tại trong một tệp khác trên hệ thống. Làm cách nào để đưa tệp này vào .bashrc?Bao gồm các tệp bổ sung trong .bashrc
Trả lời
Thêm source /whatever/file
(hoặc . /whatever/file
) vào .bashrc
nơi bạn muốn tệp khác đi kèm.
Để ngăn lỗi bạn cần kiểm tra trước để đảm bảo tệp tồn tại. Sau đó, nguồn tập tin. Làm một cái gì đó như thế này.
# include .bashrc if it exists
if [ -f $HOME/.bashrc_aliases ]; then
. $HOME/.bashrc_aliases
fi
Nếu bạn có nhiều tệp bạn muốn tải có thể tồn tại hoặc không tồn tại, bạn có thể giữ cho nó hơi thanh lịch bằng cách sử dụng vòng lặp for.
files=(somefile1 somefile2)
path="$HOME/path/to/dir/containing/files/"
for file in ${files[@]}
do
file_to_load=$path$file
if [ -f "$file_to_load" ];
then
. $file_to_load
echo "loaded $file_to_load"
fi
done
Kết quả sẽ như thế nào:
$ . ~/.bashrc
loaded $HOME/path/to/dir/containing/files/somefile1
loaded $HOME/path/to/dir/containing/files/somefile2
Chắc chắn bạn không cần phải kiểm tra sự tồn tại của tệp một lần nữa trong vòng lặp? (Trừ khi bạn có danh sách tệp rất động trên đĩa) –
Chỉ có một kiểm tra cho sự tồn tại của tệp. Nếu môi trường làm việc hiện tại của bạn không có tệp được mô tả trong danh sách, nó sẽ chỉ đơn giản là lỗi trên tải tệp đó và tạo ra tiếng ồn trực quan. Một cách tiếp cận lý tưởng hơn là lấy danh sách các tệp, sau đó lặp lại thông tin đó, thay vì xác định danh sách tĩnh. – modle13
tôi thích để kiểm tra phiên bản đầu tiên và gán biến cho con đường config:
if [ -n "${BASH_VERSION}" ]; then
filepath="${HOME}/ls_colors/monokai.sh"
if [ -f "$filepath" ]; then
source "$filepath"
fi
fi
Bạn nên xử lý không tồn tại một cách duyên dáng. Ví dụ, kiểm tra sự tồn tại (đường dẫn -r và đường dẫn.) hoặc bỏ qua lỗi (đường dẫn 2>/dev/null) –
@William Pursell IMO dễ dàng hơn để kiểm tra một lần, sau đó viết mã cho các trường hợp, 99,99% không bao giờ xảy ra . – Daniel
@Daniel Tôi không đồng ý. Những điều xảy ra .01% thời gian có thể xảy ra hàng nghìn lần mỗi giây. Và có một .bashrc trên một NFS gắn $ HOME có thể có nghĩa là tỷ lệ thất bại của tìm nguồn cung cấp tệp cao hơn nhiều .01% –