Tôi có một kịch bản Python chấp nhận các đối số chuỗi.
$ python script.py "one image.jpg" "another image.jpg"
Điều này hoạt động như mong đợi.
Đối số Python: ["one image.jpg", "another image.jpg"]
Nếu tôi cần vượt qua tên tập tin tôi sẽ làm,
$ python script.py $(ls "/some/dir/*.jpg")
Đối số Python: ["one", "image.jpg", "another", "image.jpg"]
Nếu sử dụng -Q
các ls
lệnh, tôi có thể quấn kết quả giữa dấu ngoặc kép. Tuy nhiên, dấu ngoặc kép vẫn thoát trong tập lệnh Python, tức là.
$ python script.py $(ls -Q "/some/dir/*.jpg")
Đối số Python: ['"one image.jpg"', '"another image.jpg"']
Làm cách nào để mở rộng ls
tên tệp thành các chuỗi thích hợp để sử dụng làm đối số? (như trong ví dụ đầu tiên của tôi)
"$(ls -Q '/some/dir/*.jpg')"
. Tuy nhiên, có những lựa chọn thay thế tốt hơn như được nêu trong các câu trả lời.