2015-09-01 17 views
5

Tôi đã cài đặt Git Bash Shell 2.5.1 64-bit trên một tươi Windows 10 máy:kịch bản với Git Bash 64-bit trên Windows

[email protected] MINGW64 ~/Documents/FsCheck (master) 
$ git --version 
git version 2.5.1.windows.1 

Khi tôi liệt kê các nội dung của một thư mục, tôi có thể thấy một kịch bản shell: (. một số tập tin và thư mục bị loại bỏ cho rõ ràng)

[email protected] MINGW64 ~/Documents/FsCheck (master) 
$ ls 
appveyor.yml build.cmd build.sh*   Docs/ 
bin/   build.fsx Contributors.txt examples/ FsCheck.sln 

ý rằng kịch bản shell build.sh có dấu hoa thị sau khi mở rộng. Trong giao diện điều khiển, nó cũng có màu xanh lục, nơi các tệp khác có màu xám nhạt. Tôi chưa từng thấy điều này trước đây, vì vậy tôi không biết liệu nó có ý nghĩa gì không.

Khi tôi cố gắng để chạy các kịch bản, tôi nhận được một thông báo lỗi:

[email protected] MINGW64 ~/Documents/FsCheck (master) 
$ build.sh 
bash: build.sh: command not found 

Ngoài ra, không có hoàn tab cho bất kỳ build tập tin.

Làm cách nào để chạy tập lệnh shell từ Git Bash?

Trả lời

7

Bạn có thể có ls được đặt bí danh là ls -F. Vì vậy, khi dấu sao xuất hiện có nghĩa là tệp có thể thực thi được.

Trong hệ thống POSIX, bạn không thể thực thi trực tiếp các tệp trong thư mục hiện tại (vì lý do an toàn). Nếu muốn, bạn có thể sử dụng mẹo này:

./build.sh 
+0

Khác với cách Git Bash (32-bit, tôi nghĩ) gần đây đã làm việc cho tôi, nhưng nó hoạt động, và tôi đã học được điều gì đó mới mẻ ngày hôm nay, vì vậy tôi rất vui. Cảm ơn bạn. –

+0

FWIW, tôi chỉ chạy vào cùng một lỗi, sau khi cài đặt Git mới nhất và sử dụng nó [MinTTY] (https://mintty.github.io/) thay vì cmd.exe. Cái này cũng có tác dụng với tôi. –

1

Bạn có thể chỉnh sửa PATH bằng cách thêm ";". tại END của giá trị hiện tại. Trong mingw64_shell.bat làm

SET PATH=%PATH%;. 

Note: Tôi đang tìm lúc cài đặt MSYS2 tôi, vì vậy bạn có thể cần phải tìm kiếm các tập tin ".bat" mà ra mắt bash. Vấn đề bảo mật lớn nhất với đường dẫn mặc định WINDOWS có "." ở phía trước của đường dẫn là nó cho phép người dùng vượt qua một hệ thống thực thi - điều đó sẽ làm cho các tập lệnh của bạn làm một số thứ kỳ lạ, đặc biệt nếu bạn nhập chúng từ người khác.

Các vấn đề liên quan