Điểm:0

cách đọc một biến môi trường được khai báo trong/etc/môi trường từ bash?

lá cờ mx

Làm thế nào để tôi đọc hoặc truy cập vào ĐI QUA biến môi trường dưới đây?

nicholas@gondor:~$ 
nicholas@gondor:~$ printenv | đường dẫn grep
CỬA SỔ = 2
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
nicholas@gondor:~$ 
nicholas@gondor:~$ printenv | grep TRAVERSE
nicholas@gondor:~$ 
nicholas@gondor:~$ mèo /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"



TRAVERSE="/home/nicholas/some_directory"
nicholas@gondor:~$ 

tôi đã chạy nguồn ~/.bashrc không có kết quả. Tôi hy vọng rằng nếu tôi khởi động lại thì biến sẽ có thể đọc được, nhưng điều đó có vẻ cực đoan.

Xem thêm:

https://stackoverflow.com/q/39296472/4531180

Gunnar Hjalmarsson avatar
lá cờ uz
Bạn đã đăng nhập lại sau khi đã thêm biến TRAVERSE vào `/etc/environment`?
Nicholas Saunders avatar
lá cờ mx
không, tôi đã cố tránh điều đó. Tôi dự định sẽ loay hoay với một số lọ một chút. đó là cách duy nhất @GunnarHjalmarsson để tải lại hoặc làm mới các lọ?
Gunnar Hjalmarsson avatar
lá cờ uz
Tôi muốn nói đó là cách "đúng". Nhưng bạn có thể chỉ cần thực hiện `source /etc/environment` để cập nhật quy trình bash hiện tại với các thay đổi mới nhất của bạn. Chà, các biến mới sẽ không được xuất ra môi trường theo cách đó mà chỉ có sẵn dưới dạng các biến hệ vỏ.
raj avatar
lá cờ cn
raj
Theo định nghĩa, `/etc/environment` được đọc khi đăng nhập, bởi quá trình đăng nhập, trước khi trình bao hoặc GUI được khởi động và chỉ tại thời điểm đó. Vì vậy, đăng nhập lại là một cách thích hợp để áp dụng các thay đổi trong tệp này.
muru avatar
lá cờ us
Cú pháp đầy đủ của `/etc/environment` khác rất nhiều so với cú pháp của shell script, do đó, mặc dù tệp cụ thể của bạn có thể được lấy nguồn, nhưng không phải tất cả các tệp môi trường hợp lệ đều có thể được cung cấp.
muru avatar
lá cờ us
Nếu bạn chỉ muốn nó cho trình bao hiện tại của mình, tại sao bạn không tự mình đặt và xuất biến?
Gunnar Hjalmarsson avatar
lá cờ uz
@muru: Có thể bạn trộn nó với cú pháp `~/.pam_environment`.
Điểm:1
lá cờ cn

Nếu bạn đang sử dụng vỏ bash

. /etc/môi trường

không có dấu chấm, các biến được xác định trong tệp tập lệnh sẽ không được chuyển đến trình bao hiện tại của bạn.

Ví dụ:

$ mèo b.sh
TRAVERSE="Một điều gì đó khác"
$ echo $TRAVERSE

$ ./b.sh
$ echo $TRAVERSE

$ . ./b.sh
$ echo $TRAVERSE
Một cái gì đó khác
$ 
SEWTGIYWTKHNTDS avatar
lá cờ cn
`source/etc/environment` vẫn hoạt động
Nicholas Saunders avatar
lá cờ mx
vâng, `nguồn/etc/môi trường` hoạt động. cảm ơn, đó là một chút muộn vào ban đêm.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.