Я работаю на Mac с помощью OSX, и я использую bash как свою оболочку. У меня есть сценарий, который идет что-то эффект:Вход xargs с пробелами
VAR1="pass me into parallel please!"
VAR2="oh me too, and there's actually a lot of us, but its best we stay here too"
printf "%s\n" {0..249} | xargs -0 -P 8 -n 1 . ./parallel.sh
я получаю ошибку: xargs: .: Permission denied
. Цель состоит в том, чтобы параллельно запускать другой скрипт (называемый parallel.sh), который получает данные с номерами 0-249. Кроме того, я хочу убедиться, что параллель может видеть и нас VAR1 и VAR2. Но когда я пытаюсь запустить скрипт параллельно с . ./parallel
, xargs это не нравится. Суть поиска заключается в том, что сценарий имеет другие переменные, к которым я хочу иметь параллельный доступ.
Я прочитал что-то об использовании print0, поскольку xargs разделяет его входы по пробелам, но я действительно не понимал, что делает -print0 и как его использовать. Спасибо за любую помощь, которую вы, ребята, можете предложить.
Что дополнительный '.' для? – mgamba
Что вы подразумеваете под «параллельным доступом» и «параллельным доступом»? Вы хотите, чтобы несколько процессов выполняли скрипт parallel.sh и связывались через общие переменные? –
Разве это не то, как вы делаете переменные, объявленные в скрипте доступными для параллельного скрипта? Я думал, что именно так вы «получили». Имейте в виду, что я новичок - лучше. –