lệnh bash setenv không được tìm thấy


10

Khi tôi đang sử dụng lệnh sau

         setenv CLASSPATH /path/mysql-connector-java-ver-bin.jar:$CLASSPATH

lỗi là

        bash setenv command is not found

Khi tôi tìm thấy đường dẫn của setenv bằng lệnh nào, thì tôi đã tìm thấy đường dẫn sau

 (/usr/kerberos/sbin:/usr/kerberos/bin:/home/ec2/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/home/ec2/bin:/root/bin)

Câu trả lời:


15

setenvthuộc về (t)csh, không phải bashlà vỏ mặc định trong CentOS. Sử dụng

export CLASSPATH="/path/mysql-connector-java-ver-bin.jar:$CLASSPATH"

thay thế.


3

Thậm chí tốt hơn vì sạch sẽ hơn, sử dụng ký hiệu tiền tố (không có set) trên lệnh bạn muốn gọi:

CLASSPATH=/path/mysql-connector-java-ver-bin.jar:$CLASSPATH ANOTHER_VAR=bla ATHIRD_VAR=blu java -...

Bây giờ javaquá trình bạn gọi sẽ có thể thu thập (các) biến môi trường tạm thời của bạn CLASSPATH, ANOTHER_VARATHIRD_VAR.

Nếu bạn đã sử dụng export, thì các biến cũng sẽ được đặt trên toàn cầu (?), Ít nhất là trên môi trường của tập lệnh. Và, các giá trị của các biến đã tồn tại sẽ bị ghi đè bởi các giá trị mới.

Ưu điểm của ký hiệu tiền tố:

  • các giá trị trước đó của một biến sẽ không thay đổi, tức là trong trường hợp các giá trị cũ đang cần sau này, thì không cần phải lưu các giá trị cũ của các biến đã tồn tại để khôi phục chúng sau khi gọi
  • không cần unsetcác biến tạm thời của bạn cho mục đích dọn dẹp sau khi gọi
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.