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

Существует функция, которая является частью программного пакета (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 дает: /net/user1/ имя_проекта /Data/2011_01_10_SVD1/3_fMRI_rest

2 ответа

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

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

#!/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

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

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

Другие вопросы по тегам