Muszę przekazać tekst zawierający białe spacje i inne znaki do skryptu, który jest uruchamiany przez GNU Parallel.Jak przekazywać cytowane argumenty do GNU Równoległe
Tutaj jest bardzo prosty przykład:
$ seq 1 3 | parallel echo "Quoted ' (text)"
Powyższy przykład wyświetli to:
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
Jednakże, jeśli robię to wszystko działa:
seq 1 3 | parallel echo "\"Quoted ' (text)\""
I stało aby uruchomić to ze skryptu Pythona, więc przed przekazaniem argumentów powołuję je podwójnie w skrypcie takim jak th jest:
args = ["Some arg", "Another arg", "etc."]
args = ' '.join(pipes.quote(pipes.quote(arg)) for arg in args)
Ale to nie wydaje się być czystym rozwiązaniem.
Czy ktoś wie o lepszym sposobie przekazywania argumentów do GNU Parallel?
Dzięki!
"Nie jest to czyste rozwiązanie", ale czy to działa? Powodzenia. – shellter