Мне нужно передать некоторый текст, который включает пробелы и другие символы, в скрипт, который запускается GNU Parallel.
Вот очень простой пример:
$ seq 1 3 | parallel echo "Quoted ' (text)"
Приведенный выше примервыведет это:
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
Однако, если я сделаю это, все будет работать:
seq 1 3 | parallel echo "\"Quoted ' (text)\""
Я запускаю это из скрипта Python, поэтому перед передачей аргументов ядвойные кавычки в сценарии:
args = ["Some arg", "Another arg", "etc."]
args = ' '.join(pipes.quote(pipes.quote(arg)) for arg in args)
Но это не похоже на чистое решение.
Кто-нибудь знает, как лучше передать аргументы в GNU Parallel?
Спасибо!