Tôi gặp sự cố khá lạ khi tạo tệp văn bản bằng tập lệnh shell linux. Tình huống này là:Nhiều tệp được tạo bởi tập lệnh, chỉ một tệp được tạo bởi tập lệnh
Trên Trạm đĩa Synology của tôi Tôi đang thực thi một tập lệnh sh. Nó truy cập cơ sở dữ liệu mySQL cục bộ bằng cách sử dụng một người dùng SQL chỉ đọc. Có nhiều cuộc gọi (một dòng cho mỗi cuộc gọi) và mỗi cuộc gọi sẽ ghi đầu ra nhận được vào một tệp .csv ở các vị trí khác nhau.
Các kịch bản sh trông như thế này:
/some/path/create_lists.sh
mysql --arguments </path/to/script1.sql> /path/to/outfile1.csv
mysql --arguments </path/to/script2.sql> /path/to/outfile2.csv
mysql --arguments </path/to/script3.sql> /path/to/outfile3.csv
mysql --arguments </path/to/script4.sql> /path/to/outfile4.csv
Sử dụng máy tính Windows của tôi, tôi muốn truy cập những tập tin này.
Về nguyên tắc, điều này đã hoạt động tốt, nhưng bằng cách nào đó chỉ tệp .csv được tạo mới nhất có thể đọc trực tiếp bằng MS Excel. Trong ví dụ trên, outfile4.csv sẽ là tệp chỉ đọc được. Khi hoán đổi dòng 3 và 4, outfile3.csv có thể đọc được. Đối với tệp outfile4.csv, tệp mới có cùng tên chính xác sẽ được tạo, không thể mở bằng MS Excel. Notepad ++ có thể mở nó.
Nó sẽ giống như thế này trong Windows Explorer:
\\myNAS\path\to
outfile4.csv (working)
outfile4.csv (not working)
Làm thế nào có thể có hai tập tin có cùng tên? Và một trong đó là làm việc trong khi một trong những khác không?
Và bravo để tự trả lời vấn đề số 1 cho kịch bản lệnh chéo cửa sổ-linux VÀ cho một định dạng tốt Q. Bây giờ di chuyển câu trả lời đó và bạn chấp nhận câu trả lời của riêng bạn sau 48 giờ và đạt được điểm danh tiếng "có giá trị" ;-). – shellter
Thay đổi nó, cảm ơn! – Marlon