Tạo một lối tắt tập lệnh cygwin yêu cầu tham số


0

Tôi đã tạo một tập lệnh cho cygwin và đặt một lối tắt như được giải thích ở cuối hướng dẫn này .

Rõ ràng, tập lệnh của tôi phải nhận các tham số biến và cách nó được đặt hoặc nó chạy như thể không có tham số nào được thông qua hoặc nếu tôi đặt bất cứ điều gì sau đường dẫn kịch bản, nó coi đó là tham số bằng chữ.

Hãy xem xét một tập lệnh (echo.sh) như thế này:

#!/bin/bash    
echo "this"$1
sleep 30

Mục tiêu trong phím tắt của tôi:

C:\cygwin64\bin\bash.exe --login -i '/cygdrive/c/cygwin64/echo.sh'

Khi tôi nhấp vào phím tắt, nó đã in 'cái này' và ngủ. Tôi đã thử:

C:\cygwin64\bin\bash.exe --login -i '/cygdrive/c/cygwin64/echo.sh $1' #file not found
C:\cygwin64\bin\bash.exe --login -i '/cygdrive/c/cygwin64/echo.sh' $1 #prints 'this$1'

Bạn có thể cho một ví dụ về những gì bạn đã cố gắng?
matzeri

Các phím tắt không thể sử dụng các tham số biến. Bạn nên sửa đổi tập lệnh của mình để yêu cầu các giá trị sử dụng hoặc đọc chúng từ tệp nếu thích hợp. Lưu ý rằng nó thực sự rất không rõ ràng những gì bạn đang thực sự làm.
DavidPostill

Tôi đã thêm chi tiết ... vậy tôi có thực sự cần thay đổi tập lệnh không?
carla

Câu trả lời:


0

Như đã nêu trong các ý kiến, các phím tắt không thể xử lý các biến.

Bạn có thể tạo một tập lệnh bó ( script.cmd), nhận được một đối số và gọi Cygwin.

C:\cygwin64\bin\mintty.exe /usr/bin/bash --login "/cygdrive/c/cygwin64/echo.sh" %1

Bạn cũng có thể kéo và thả một biểu tượng vào script.cmdvà nó nhận đường dẫn của tệp bị hủy làm đối số. Tuy nhiên, bạn phải chăm sóc Windows <-> bản dịch đường dẫn Cygwin ( cygpath).

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.