/ usr / local / bin / không được tìm thấy bởi Automator và Java nhưng tồn tại trong Terminal [trùng lặp]


2

Câu hỏi này đã có câu trả lời ở đây:

Tập lệnh Shell tự động

echo $PATH
eval /usr/libexec/path_helper -s
echo $PATH

Các kết quả:

sau lần đầu tiên echo $PATH:

/usr/bin:/bin:/usr/sbin:/sbin

sau lần thứ hai echo $PATH:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin

Vì ImageMagick được cài đặt trong / usr / local / bin, điều đó có nghĩa là nó bị lỗi trừ khi tôi gây rối với PATH trước bất cứ ai cũng biết Automator (Java giống nhau) lấy đường dẫn từ đâu và làm thế nào để thêm vĩnh viễn các đường dẫn bị thiếu


Dòng Sepate lặp lại $ PATH & gt; & gt; eval / usr / libexec / path_helper -s & gt; & gt; tiếng vang $ PATH
Jeff Vallis

Kết quả & gt; & gt; tiếng vang đầu tiên = / usr / bin: / bin: / usr / sbin: / sbin lần thứ hai
Jeff Vallis

Tôi đã chỉnh sửa câu hỏi của bạn. Vui lòng kiểm tra mod của tôi
klanomath

Các câu trả lời cho Automator và Java sẽ khác nhau khi lần đầu tiên được đưa ra thông qua GUI và hầu hết các trường hợp thứ hai sẽ thông qua dòng lệnh - có nhiều bản sao của cả hai trên trang web này
Mark

Câu trả lời:


2

Automator sử dụng biến đường dẫn được mã hóa cứng trong kernel.

sysctl user.cs_path
user.cs_path = /usr/bin:/bin:/usr/sbin:/sbin

Trên thực tế, đây là đường dẫn được đặt cho launchd của người dùng và sau đó được Automator kế thừa khi bạn khởi chạy ứng dụng.

launchctl getenv PATH
/usr/bin:/bin:/usr/sbin:/sbin

Sử dụng các đường dẫn tuyệt đối đến các tệp thực thi của bạn hoặc sửa đổi PATH trong Run Shell Script.


Rất thú vị! +1 Đơn giản echo $PATH trong Run Shell Script xác nhận điều này và tôi đã có vấn đề trong quá khứ và chưa bao giờ kiểm tra điều này! Bây giờ tôi biết tại sao tôi phải cứng mã một số đường dẫn! :)
user3439894

Bạn cũng có thể thêm một PATH= ... câu lệnh, được đặt thành những gì trong môi trường, ở đầu Run Shell Script và sau đó không phải mã cứng đường dẫn đến tệp thực thi. Bạn có thể thêm nó vào câu trả lời của bạn nếu bạn muốn.
user3439894
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.