Функция работает правильно с вводом относительного пути, но НЕ с вводом абсолютного пути - PullRequest
2 голосов
/ 12 января 2011

Существует функция, которая является частью программного пакета (MRICro), и она называется 'dcm2nii.'

Если в качестве выходного каталога используется относительный путь, функция работает отлично.

Но когда используется абсолютный путь к той же самой папке, функция не работает.

Пример (абсолютный путь):

dcm2nii -o /net/user1/project_name/Data/2011_01_10_SVD1/Processed/3_fMRI_rest E2538S3I00*

Пример (относительный путь):

dcm2nii -o ../Processed/3_fMRI_rest E2538S3I00*

Пример сообщения об ошибке, возникающего при использовании абсолютного пути к выходной папке (последняя строка указывает, что выходной файл не может быть создан):

Validating 52 potential DICOM images.
Found 52 DICOM images.
Converting 52/52  2
E2538S3I0001.MR.dcm->20110110_112950E2538S3I0001MRFPSD1F29OCT2010RCs003a1001.nii
GZip 20110110_112950E2538S3I0001MRFPSD1F29OCT2010RCs003a1001.nii
unable to create /net/user1/project_name/Data/2011_01_10_SVD1/Processed/3_fMRI_rest/20110110_112950E2538S3I0001MRFPSD1F29OCT2010RCs003a1001.nii.gz

Я не знаю, связана ли эта проблема с тем, что я что-то не так делаю в Linux / bash, или с ошибкой в ​​функции.

Но любой вклад приветствуется.

На более общем уровне я ищу любую предсказуемую причину, по которой функция могла бы использовать относительный путь к папке, а не абсолютный (при условии, что они разрешаются в одном и том же месте).

РЕДАКТИРОВАТЬ: PWD дает: / Нетто / user1 / project_name / Data / 2011_01_10_SVD1 / 3_fMRI_rest

Ответы [ 2 ]

0 голосов
/ 28 января 2017

Похоже, это какая-то ошибка .. У меня возникла та же проблема.Если я пытаюсь выполнить эту команду для данных в моей домашней папке, я получаю ту же ошибку.

Однако, если я перемещаю свои данные в путь, который не требует расширения, то есть '' / tmp /data '', программа выполняется нормально.

0 голосов
/ 12 января 2011

вам действительно нужно показать нам код, прежде чем мы расскажем вам, в чем причина проблемы, однако описанное вами поведение возможно

Это пример плохой практики, но учтите следующее1003 *

#!/bin/bash
....
current_dir = $(pwd)
out_dir = $1
cd ${somewhere}
..... do stuff
#no we want to come back to create the output dir
mkdir ${current_dir}/$out_dir
...