Tôi đã thêm nó vào .bash_profile nhưng tôi đã bỏ qua việc gắn nhãn và quên chính xác ý nghĩa của nó


4

Tôi nhớ rộng rãi những gì nó làm, nhưng không cụ thể:

    if [ -f ~/.bashrc ]; then
    source ~/.bashrc
    fi

Mục đích chính xác cho nó một lần nữa là gì?

Câu trả lời:


4

Điều này nguồn một ~/.bashrctập tin nếu nó tồn tại và tải nội dung của tập tin đó.

Câu trả lời ngắn gọn cho câu hỏi của bạn là: bạn đã làm điều này cho dù bạn có đến máy bằng cách nào, thông qua một vỏ được mở trong phiên máy tính để bàn tương tác hoặc đăng nhập ssh vào máy, bashvỏ của bạn có một thiết lập phù hợp với nó.

Câu trả lời dài hơn cho lý do tại sao bạn phải làm theo cách này nằm bên dưới ...

Lý do bạn muốn làm điều này nằm trong lịch sử bash: một trong những tệp đó được sử dụng cho thông tin đăng nhập tương tác, còn lại được sử dụng cho thông tin đăng nhập không tương tác. Ý nghĩ đằng sau việc có hai thiết lập khác nhau là bạn có thể muốn một số thứ trong vỏ tương tác của mình (một dấu nhắc ưa thích, thông báo trong ngày, thông báo đầu ra lệnh của bạn, v.v.) mà bạn không muốn trong phiên không tương tác vì nó tăng khả năng truy cập theo chương trình vào đầu vào và đầu ra và những gì không.

Đối với hầu hết người dùng mặc dù bạn muốn cả hai môi trường giống nhau. Hầu hết chúng ta không chạy các thiết lập bash đủ phức tạp để đảm bảo tách biệt các thiết lập tương tác và không tương tác như thế này.

Cái .bash_profileđược thực thi cho shell đăng nhập, trong khi .bashrcđược thực thi cho shell không đăng nhập tương tác.

một bài viết rất hay của Josh Staiger nói về lý do tại sao cái này lại khác và làm thế nào để nhớ nơi để đặt mọi thứ . Cho phép tôi trích dẫn một số ở đây:

Một vỏ đăng nhập hoặc không đăng nhập là gì?

Khi bạn đăng nhập (nhập tên người dùng và mật khẩu) qua bàn điều khiển, ngồi ở máy hoặc từ xa qua ssh: .bash_profileđược thực thi để định cấu hình trình bao của bạn trước dấu nhắc lệnh ban đầu. Nhưng, nếu bạn đã đăng nhập vào máy của mình và mở một cửa sổ đầu cuối mới ( xterm) bên trong Gnome hoặc KDE, thì .bashrcsẽ được thực thi trước dấu nhắc lệnh của cửa sổ. .bashrccũng được chạy khi bạn bắt đầu một bash mới bằng cách gõ /bin/bashvào terminal.

Mac OS X - một ngoại lệ

Một ngoại lệ đối với các nguyên tắc của cửa sổ đầu cuối là Mac OS X Terminal.app, chạy vỏ đăng nhập theo mặc định cho mỗi cửa sổ đầu cuối mới, gọi .bash_profilethay vì .bashrc. Các trình giả lập thiết bị đầu cuối GUI khác có thể làm tương tự, nhưng hầu hết có xu hướng không.

sự giới thiệu

Hầu hết thời gian bạn không muốn duy trì hai tệp cấu hình riêng biệt cho các vỏ đăng nhập và không đăng nhập - khi bạn đặt PATH, bạn muốn nó áp dụng cho cả hai. Bạn có thể khắc phục điều này bằng cách tìm nguồn .bashrctừ .bash_profiletệp của mình , sau đó đặt PATH và các cài đặt chung .bashrc.

Để thực hiện việc này, hãy thêm các dòng sau vào .bash_profile:

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

Bây giờ khi bạn đăng nhập vào máy của bạn từ bàn điều khiển .bashrcsẽ được gọi.


0

Xem mô tả của Ian C về những gì dòng nguồn làm

Điều này được bao quanh bởi một câu lệnh if

if x; then
  ....
fi

cái này kiểm tra trên x và sau đó chạy mã giữa lúc đó và fi (Ý tưởng về fi kết thúc và nếu và các endins khác bằng cách đảo ngược từ khóa ăn xin được sử dụng trong sh và shell liên quan.

Kiểm tra được thực hiện ở đây cũng [ -f ~/.bashrc ]giống như test -f .bashrckiểm tra if báo trả về đúng iff những gì sau -f là một tệp và nó tồn tại.

Vì vậy, mã trên cho biết nếu có .bashrc chạy nó vào trình bao của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.