Bắt đầu bash shell (cygwin) với đường dẫn chính xác mà không thay đổi thư mục


13

Tôi cần chạy một kịch bản shell cygwin mà không thay đổi thư mục làm việc, từ bên ngoài môi trường cygwin.

Nếu tôi chỉ chạy \path\to\bash.exe -c command, thì đường dẫn không được đặt chính xác và các chương trình cygwin không thể tìm thấy.

Nếu tôi sử dụng --logintùy chọn, bashđặt đường dẫn chính xác, nhưng cũng thay đổi thư mục chính của tôi.

Tôi nên sử dụng các tùy chọn nào để khởi chạy bash để giữ thư mục làm việc hiện tại và cũng tìm thấy các tệp thực thi của Cygwin?


Xin chào, câu hỏi tương tự đã được thảo luận tại StackOverflow: stackoverflow.com/questions/9637601/NH
Roman Hocke

@Roman: Điều này sẽ hoàn toàn lạc đề về SO.
Ben Voigt

Câu trả lời:


18

Nó chỉ ra rằng mặc định cygwin /etc/profilekiểm tra một biến môi trường có tên CHERE_INVOKINGvà ngăn chặn sự thay đổi của thư mục nếu được đặt.

Vì thế

set CHERE_INVOKING=1
\path\to\bash.exe -l -c command

có hành vi mong muốn.


Điều này cũng hoạt động để gọi bash MSYS2.
tharen
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.