Выполнение цикла в HPC в нескольких подкаталогах один за другим

Я обнаружил, что проблема заключается в конфигурации ipv6, которая также продолжала попытки обновить зоны, это было обнаружено в файле журнала /var/log/messages , и, поскольку он был предварительно -настроен в настройках по умолчанию он будет продолжать попытки обновить зону сразу после обновления ipv4, поэтому ответ даже не будет получен.

Удалены все ссылки на ipv6 из /etc/named.conf и добавлены следующие параметры в файл /etc/sysonfig/named .

RESOLVCONF=да

ОПЦИИ= -4

Теперь он обновляется мгновенно.

0
24.02.2021, 08:04
1 ответ

Учитывая вашу дополнительную информацию, я вполне уверен, что следующее решение является:

for SPEC in * 
do 
    cd "$SPEC" 
    eddy --main="${SPEC}.nii" \
         --mask="${SPEC}_mask.nii" \
         --index="${SPEC}_index.txt" \
         --acqp="${SPEC}_acqp.txt" \
         --bvecs="${SPEC}.bvec" \
         --bvals="${SPEC}.bval" \
         --fwhm=0 --flm=quadratic --out=eddy_out --data_is_shelled
    cd..
done

Обсуждение

Я заменил ваше удостоверение личности на SPEC, вместо "образца" (не стесняйтесь называть его как угодно ). *генерирует список всех подкаталогов экземпляров, а цикл forприсваивает их переменной SPECодин за другим.

Поскольку имена каталогов могут содержать забавные символы, которые могут быть интерпретированы оболочкой, все ссылки на SPECзаключаются в двойные кавычки. Это удаляет интерпретацию специальных символов, кроме доллара.

Итак, для каждого SPECмы входим в подкаталог, запускаем команду eddyи возвращаемся в родительский каталог. {SPEC}записывается таким образом, поскольку подчеркивание в SPEC_maskи т. д. в противном случае интерпретировалось бы как часть имени переменной. Поскольку имена переменных не могут содержать точки, "$SPEC.nii"будет работать, но я оставил { }для согласованности.

0
18.03.2021, 22:28

Теги

Похожие вопросы