Tôi cần phải chuyển một số văn bản bao gồm khoảng trắng và các ký tự khác vào một tập lệnh đang được chạy bởi GNU Parallel.Làm thế nào để chuyển args trích dẫn đến GNU Parallel
Dưới đây là một ví dụ rất đơn giản:
$ seq 1 3 | parallel echo "Quoted ' (text)"
Ví dụ trên sẽ ra này:
sh: -c: line 0: unexpected EOF while looking for matching `''
sh: -c: line 1: syntax error: unexpected end of file
sh: -c: line 0: unexpected EOF while looking for matching `''
sh: -c: line 1: syntax error: unexpected end of file
sh: -c: line 0: unexpected EOF while looking for matching `''
sh: -c: line 1: syntax error: unexpected end of file
Tuy nhiên, nếu tôi làm tất cả mọi thứ này hoạt động:
seq 1 3 | parallel echo "\"Quoted ' (text)\""
tôi xảy ra để chạy điều này từ kịch bản lệnh python, vì vậy trước khi chuyển các đối số, tôi sẽ trích dẫn chúng trong kịch bản lệnh như lần thứ hai là:
args = ["Some arg", "Another arg", "etc."]
args = ' '.join(pipes.quote(pipes.quote(arg)) for arg in args)
Nhưng dường như nó không phải là giải pháp sạch.
Có ai biết cách nào tốt hơn để chuyển đối số cho GNU Parallel không?
Cảm ơn!
'không phải là giải pháp sạch', nhưng nó có hoạt động không? Chúc may mắn. – shellter