2015-07-01 29 views
29

Tôi đang cài đặt liquidprompt và trong tài liệu yêu cầu bạn thêm [[ $- = *i* ]] && source ~/liquidprompt/liquidprompt vào .bashrc của mình.

Tôi đang cố gắng hiểu phần đầu tiên của dòng nhưng thật khó cho một noob trong bash như tôi. Nếu bất kỳ ai có tài liệu hay câu trả lời hay ...

+0

thú vị hơn nữa đọc: [? Is Shell tương tác này] (http://www.gnu.org/software/bash/manual/html_node/Is-this-Shell-Interactive_003f.html) và [Làm thế nào tôi có thể kiểm tra bash nếu một shell đang chạy trong chế độ tương tác?] (http://serverfault.com/a/146747/200076) – fedorqui

Trả lời

52

$- chứa các tùy chọn trình bao hiện tại.

Trong [[ ... ]], phía bên tay phải của = được hiểu là mẫu nếu không được trích dẫn. Do đó, *i* có nghĩa là i có thể đứng trước hoặc theo sau bởi bất kỳ thứ gì.

Nói cách khác, nó kiểm tra tùy chọn i có sẵn, tức là liệu vỏ hiện tại có tương tác hay không.

+3

Được chấp thuận bởi người bảo trì liquidprompt mình (người đã viết hướng dẫn trong hướng dẫn). – dolmen

+0

giải thích tuyệt vời! – math2001

13

Kiểm tra xem các tùy chọn cho vỏ $- có chứa i trong đó không. Các i là dành cho tương tác

Từ Bash man page:

Một vỏ tương tác là một bắt đầu không có đối số không lựa chọn và mà không có tùy chọn -c có chuẩn đầu vào và lỗi được kết nối cả đến thiết bị đầu cuối (như được xác định bằng đẳng thức (3)) hoặc bắt đầu bằng tùy chọn -i . PS1 được đặt và $ - bao gồm i nếu bash tương tác, cho phép một tập lệnh shell hoặc tệp khởi động để kiểm tra trạng thái này.

Also relevant

+2

Được chính người bảo quản chất lỏng chấp thuận (người đã viết hướng dẫn đó trong sách hướng dẫn). – dolmen