Tôi gặp phải một vấn đề có vẻ lạ khi cố gắng lấy tập lệnh xây dựng (từ bên thứ 3) để làm việc với thiết lập của mình với Win7 và Cygwin (phiên bản mới nhất). Vấn đề có thể được mô tả tốt nhất với bash
đoạn mã ví dụ :
foo="/cygdrive/c/svn/Projects/Client Config/Android/Repack/foo/out"
cygpath -w "$foo/play-services-tasks/classes.jar"
bar=`cygpath -w "$foo/play-services-tasks/classes.jar"`
echo $bar
Chạy kết quả như sau (chú ý đến dấu hai chấm sau ký tự ổ đĩa):
C:\svn\Projects\Client Config\Android\Repack\foo\out\play-services-tasks\classes.jar
C \svn\Projects\Client Config\Android\Repack\foo\out\play-services-tasks\classes.jar
Vì vậy, đường dẫn (đầu ra của cygpath
) là thích hợp trước khi đặt nó vào một biến, nhưng biến không còn chứa dấu hai chấm sau ký tự ổ đĩa. Điều đó, đến lượt nó, làm cho một kịch bản / công cụ khác thất bại khi nó cố gắng lặp lại trên các đường dẫn được phân tách bằng dấu cách trong một biến. Và thật không may, công cụ đó hy vọng sẽ có các đường dẫn kiểu Windows.
Không cần phải nói, tôi đang bối rối ...
Vấn đề xuất hiện khi tập lệnh xây dựng thay đổi và nó có thể thiếu một số hack tương thích cygwin, một số trong đó tôi đã quản lý để áp dụng, nhưng điều này thực sự khó chịu. Có thể có thể làm việc xung quanh các bộ phận đã thay đổi bằng cách nào đó nhưng tôi muốn tìm hiểu lý do cho việc tìm kiếm của tôi và cách giải quyết vấn đề đó trực tiếp.