2014-01-13 4 views
5

Команда parallel echo {} ::: A B C выполнена из командной строки возвращает правильный результат, в то время как при вызове в Баш скрипт возвращает ошибку:Выполнение GNU Parallel в сценарии

Это сценарий:

#script.bash 
#!/usr/bin/env bash 

parallel echo {} ::: A B C 

Это является выход:

bash script.bash 
/bin/bash: {}: command not found 
/bin/bash: ::: command not found 
/bin/bash: A: command not found 
/bin/bash: B: command not found 
/bin/bash: C: command not found 

Любая идея, почему и как правильно вызывать GNU параллельно в сценарии bash?

+0

Добавить скрипт вы работаете на вопрос. – user000001

+0

Отредактировано с помощью скрипта, действительно основного, как вы можете видеть. – memecs

ответ

5

Видимо переключатель --tollef (который не поддерживает синтаксис :::) активируется при запуске его из сценария.

Вы можете это исправить либо путем включения переключателя --gnu, как с

parallel --gnu echo {} ::: A B C 
+1

Да, это сработало, спасибо! – memecs

+0

Кстати, вы знаете, есть ли замена строки для номера процесса (например, 0,1,2,3,4)? – memecs

+0

Не уверен, что вы имеете в виду. Возможно, что-то вроде '::: {A..Z}'? – user000001

Смежные вопросы