Nhiều dòng thiết lập biến môi trường đường dẫn với bash


11

Tôi có rất lâu export PATH=A:B:C .... Tôi có thể tạo nhiều dòng để có nhiều dòng như sau không?

export PATH = A:
              B:
              C:

Câu trả lời:


22

Bạn có thể làm:

export PATH="A"
export PATH="$PATH:B"
export PATH="$PATH:C"

Mỗi dòng tiếp theo sẽ nối vào đường dẫn được xác định trước đó. Đây thường là một thói quen tốt, vì nó tránh được việc vứt bỏ con đường hiện có. Nếu bạn muốn thành phần mới được ưu tiên, hãy trao đổi thứ tự:

export PATH="A"
export PATH="B:$PATH"
export PATH="C:$PATH"

Ngoài ra, bạn có thể làm:

export PATH=A:\
B:\ 
C

nơi \đánh dấu một dòng tiếp tục. Không thử nghiệm phương pháp này.


2
Lưu ý rằng đó exportlà một lệnh tích hợp, không phải là một từ khóa cũng không phải là một bài tập cú pháp. Vì vậy, nếu bạn có PATHcác thành phần chứa khoảng trắng (hoặc ký tự toàn cầu), bạn cần có dấu ngoặc kép xung quanh export PATH="$PATH:B". Bạn cũng có thể viết PATH=$PATH:Bvà như vậy; bạn chỉ cần exportmột biến một lần, không phải mỗi lần nó thay đổi (ngoại trừ trong một số vỏ Bourne rất cũ) và bạn không cần dấu ngoặc kép trong một bài tập.
Gilles 'SO- ngừng trở nên xấu xa'

1
Cũng PATH+=:Bhoạt động cho nối chuỗi.
Aryeh Leib Taurog

4

Bạn có thể mở rộng các dòng trong bash bằng cách sử dụng dấu gạch chéo ngược ở cuối dòng như thế này:

export PATH=/path/A:\
/path/B:\
/path/C

Xin lưu ý rằng sự vắng mặt của khoảng trắng là quan trọng ở đây.


0

Cách tiếp cận khác:

export PATH=$(tr -d $'\n ' <<< "
   /path/A:
   /path/B:
   /path/C")

Có thêm lợi ích của việc không làm rối mức độ thụt lề 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.