Chạy tệp bó windows từ đăng nhập ssh - thiếu env vars


1

Tôi đang cố gắng chạy một tập tin windows windows từ một đăng nhập ssh. Tôi đã cài đặt thành công cygwin w / OpenSSH trên máy chủ (windows 2003).

Tôi có thể đăng nhập và chạy tệp, nhưng tệp không chạy đúng vì nó phụ thuộc vào biến môi trường. Tôi phát hiện ra rằng vì lý do bảo mật, không phải tất cả các biến môi trường đều được thêm vào shell ssh. Tôi đã thêm biến môi trường tôi cần (trong ~ / .profile), nhưng tệp vẫn bị lỗi.
Tôi đã sửa đổi tệp và cho nó xuất ra biến môi trường gây ra sự cố trước đó và tôi phát hiện ra rằng nó vẫn chưa được đặt. Vì vậy, mặc dù tôi đã thêm biến môi trường và nó tồn tại trong shell, nhưng nó không có sẵn trong shell mà tệp bó đang được chạy.

Làm cách nào để thêm biến môi trường vào shell của tệp bó?
Sửa đổi tập tin vĩnh viễn không phải là một lựa chọn; nó được tạo bởi một chương trình khác và tôi đang cố gắng viết một git hook để chạy tệp trên một máy khác sau khi "git đẩy"

Câu trả lời:


3

Bạn có thể viết một tập lệnh shell nhỏ đặt (các) biến môi trường và sau đó chạy tệp bó. Ví dụ:

#!/bin/bash
export VAR1="value of VAR1"
export VAR2="value of VAR2"
./script.bat

Ví dụ này giả định rằng script.battrong thư mục làm việc hiện tại và bạn đã thực thi quyền cho nó.


đó là những gì tôi đã làm vấn đề là tập lệnh nằm trong một thư mục mà quá trình xây dựng của chương trình tạo lại, do đó nó sẽ bị ghi đè. Nó cũng phải được gọi từ thư mục đó, vì nó phụ thuộc vào biến pwd. Tôi đã giải quyết vấn đề bằng cách tạo tập tin một cách nhanh chóng khi tôi cần nó với các lệnh echo.
AsherMaximum

Bạn có thể đặt tập lệnh shell ở trên vào nơi nó có thể tồn tại, sau đó đặt cd ...lệnh ngay trước khi ./script.batthay đổi sang thư mục thích hợp ngay trước khi khởi chạy tệp bó. Bằng cách đó, tập lệnh shell ở trên không phải ghi đè hoặc xóa.
Fran
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.