Я думаю, это сводится к тому, что я не совсем понимаю, как разделяются процессы GNU Parallel. Я посмотрел, если использование переменных с GNU Parallel будет конфликтовать, и я нашел очень мало ничего в Интернете.Будет ли работать параллельная команда GNU с переменными, вызывающими конфликт?
Если я использую команду вроде следующего с параллельным:
echo "$textdata" | parallel -j5 cat | for line in file; do var1=$(echo $line); var2=$(echo "$line" | grep -A 1); var3=$(echo "$line" | somecommand); echo "$var1" "$var2" "$var3"; done
Будет ли это конфликт путем переопределения друг с другом при использовании переменной? Или он работает в разных процессах и может использоваться одна и та же переменная?
Другими словами, будут ли пустые переменные $ var1, $ var2 или $ var3 запущены параллельно?
А? ** GNU Parallel ** никогда не увидит ваши переменные, как они есть после символа трубы ('|'), и в следующем процессе, который читает вывод ** GNU Parallel **. Что вы на самом деле пытаетесь сделать - просто на английском? –
Я пытаюсь использовать переменные в команде чтения. Я обеспокоен тем, что если эти переменные работают «параллельно», тогда он может быть перегружен или заменен неправильно. Это имеет смысл? Извините, если я не понимаю, пытаясь описать. – DomainsFeatured
вот возможный способ сделать это: 'echo '$ textdata" | parallel -j5 --pipe myscript.sh' и 'myscript.sh' содержит:' while read line; do ... 'это прекрасно, если линий не так много. если есть много строк, подумайте о способе сценария вашей задачи без 'while read line', или он определенно будет работать медленно. – webb