Làm thế nào để bạn thiết lập môi trường cho es?


10

Tôi đã chơi với es vài ngày trước và nó (như RC) có một tính năng / trò chơi mà nó chỉ chạy tập lệnh khởi động ( .esrc) khi đăng nhập. Cách thông thường để chạy mã trong mỗi phiên tương tác là đặt mã đó vào %prompthàm.

Tất nhiên, không có %promptchức năng nếu es -lchưa bao giờ được chạy.

Vì vậy, câu hỏi: làm thế nào để bạn thiết lập môi trường đăng nhập khi bạn truy cập thông qua gdm hoặc tương tự, chỉ có nguồn .profile (hoặc .xprofile, .xsession, v.v.)? Điều tốt nhất tôi nghĩ ra là:

if [ -f "$HOME/.esrc" ]; then
    eval "`es -l <<-x
        sh <<<'export -p'
    x`"
fi

Mà có vẻ ... kinh hoàng. Bất kỳ phương pháp tốt hơn?


Tôi tập hợp đó eskhông phải là vỏ đăng nhập của bạn. Những gì về thiết lập alias es='es -l'trong .bashrc?
cjm

eslà vỏ đăng nhập của tôi. Xin lỗi nếu tôi không làm rõ điều đó. Nhưng shell đăng nhập không chạy trong phiên X trước khi thiết bị đầu cuối được khởi chạy, ít nhất là theo như tôi biết.
james.haggerty

Tôi sử dụng bash, không es. Nhưng khi tôi mở một cửa sổ terminal mới, nó sẽ chạy bashnhư một shell đăng nhập.
cjm

Ít nhất là với hầu hết các thiết bị đầu cuối X, đây là một tùy chọn bị tắt theo mặc định (vì nó phải là IMO). Vì vậy, có, đó là một cách giải quyết, nhưng không có lý do gì công cụ này nên được chạy nhiều lần khi nó có thể được chạy một lần.
james.haggerty

Hmm, không chắc chắn tôi đồng ý với chỉnh sửa của bạn, Gilles. Tại sao bạn nghĩ rằng điều này chỉ áp dụng cho es? (và không phải * csh hoặc RC hoặc ...?) Và tại sao lại xóa gdm và lightdm, vì chúng là những thứ kiểm soát môi trường?
james.haggerty

Câu trả lời:


1

Vì không ai có câu trả lời thực sự, đây là bản hack khủng khiếp của tôi. Một số shell (ví dụ * rxvt) có các cài đặt cho phép buộc shell đăng nhập. Vì vậy, trong của bạn .Xdefaults, bạn có thể thêm một cái gì đó giống như

urxvt256c-ml:loginShell: true

Điều đó có nghĩa là tất cả các urxvt256c-mlthiết bị đầu cuối bạn khởi chạy sẽ có vỏ đăng nhập theo mặc định.

Điều đó có giúp ích gì không?


Chà, là một người khó chịu (xem bình luận ở trên?), Tôi sẽ nói rằng tôi đã biết về điều này. Đó là một sự thay đổi cho dù mã này hoặc mã hơi đáng lo ngại của tôi là một lựa chọn tốt hơn; một thiếu sự tao nhã về mặt khái niệm (Tôi cho rằng tôi đăng nhập cho mọi thiết bị đầu cuối, khi tôi tạo 100 giây qua một lần đăng nhập thực sự?), thì điều đó thiếu sự tao nhã khi thực hiện (nhưng tôi thực sự cảm thấy môi trường nên được thiết lập khi đăng nhập).
james.haggerty

Ah, tôi hiểu ý của bạn lúc này. Cá nhân, tôi coi một thiết bị đầu cuối là một đơn vị đăng nhập không phải là môi trường X11 vì vậy nó có ý nghĩa với tôi để đăng nhập ba lần nếu tôi mở ba thiết bị đầu cuối. Tôi sẽ để lại câu trả lời ở đây trong trường hợp nó hữu ích cho người khác - hãy xem có bao nhiêu phiếu giảm giá thu hút. ^ _ ~
Sardathrion - chống lại lạm dụng SE
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.