Ok này là lái xe cho tôi điên:của Ruby thoát argv luận hoặc chuỗi như là đối số để shell lệnh
`ls #{"/media/music/Miles Davis"}`
thất bại vì không gian giữa "Miles" và "Davis"
Giả sử tôi viết một viên hồng ngọc tập lệnh và người dùng chuyển đường dẫn tệp dưới dạng đối số. Làm thế nào để thoát khỏi nó và nạp vào một lệnh shell-out. Vâng, vâng, tôi biết, bắn phá nên tránh. Nhưng đây là một ví dụ giả tạo, tôi vẫn cần điều này.
Tôi sẽ làm system("ls", ARGV[0])
, nhưng nó không trả lại kết quả đầu ra của ls dưới dạng chuỗi, đó là điều ngược lại.
Làm cách nào để thoát khỏi bất kỳ thứ gì bạn chèn vào trình băm không?
Tuyệt vời! Cảm ơn bạn! Không biết về mô-đun đó. – ulver
Bạn cũng có thể sử dụng phím tắt 'Chuỗi # shellescape', như sau: ' ls # {"/ media/music/Miles Davis" .shellescape} ' – cgenco