Điều này dường như không thể với /etc/environment
. Nó có nghĩa là một vị trí phổ biến cho các biến độc lập. Vì điều này có vẻ như nó không hỗ trợ các chuỗi có dấu băm ( #
) trong đó và dường như không có cách nào để thoát khỏi chúng.
Tôi tìm thấy câu hỏi và trả lời SF này có tiêu đề: Làm thế nào để một người thoát khỏi một nhân vật # # hàng đầu trong linux v.v. . Không có phương pháp nào trong số này hoạt động:
- kiểm soát = "xin chào"
- test0 = "# xin chào"
- test1 = "h \ #ello"
- test2 = "h # ello"
- test3 = "h // # ello"
- test4 = "h / # ello"
- test5 = h # ello
- test6 = h \ #ello
- test7 = h # ello
- test8 = h // # ello
- test9 = h / # ello
- test10 = 'h # ello'
- test11 = 'h \ #ello'
- test12 = 'h # ello'
- test13 = 'h // # ello'
- test14 = 'h / # ello'
Câu trả lời được chấp nhận cho câu hỏi đó và điều gì cũng sẽ là lời khuyên của tôi:
Vâng, đó là thứ khó khăn mà bạn muốn làm /etc/environment
không phải là cú pháp shell, nó trông giống như một, nhưng nó không phải là thứ làm mọi người thất vọng. Ý tưởng đằng sau /etc/environment
thật tuyệt vời. Một cách độc lập shell để thiết lập các biến! Yay! Nhưng những hạn chế thực tế làm cho nó vô dụng.
Bạn không thể vượt qua các biến trong đó. Ví dụ thử đặt MAIL=$HOME/Maildir/
vào đó và xem những gì sẽ xảy ra. Tốt nhất chỉ nên ngừng cố gắng sử dụng nó cho bất kỳ mục đích nào, than ôi. Vì vậy, bạn không thể làm mọi thứ với nó mà bạn mong đợi có thể làm nếu nó được xử lý bằng vỏ.
Sử dụng /etc/profile
hoặc /etc/bashrc
.
Tuy nhiên, vẫn còn một câu hỏi và trả lời hợp lý khác về lý do tại sao lại như vậy:
Không có cách nào /etc/environment
để thoát # (vì nó được coi là một nhận xét) vì nó đang được phân tích cú pháp bởi mô-đun PAM "pam_env" và nó coi nó như một danh sách đơn giản các cặp KEY = VAL và thiết lập môi trường phù hợp. Nó không phải là bash / shell, trình phân tích cú pháp không có ngôn ngữ để thực hiện mở rộng biến hoặc các ký tự thoát.
Người giới thiệu
/etc/environment
? Bởi vì tôi không thể sao chép hành vi này trên Debian Wheezy.