2011-01-12 69 views
2

存在一個函數是一個軟件包(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 /數據/ 2011_01_10_SVD1/3_fMRI_rest

+1

聞起來像一個錯誤。我會向該程序的作者抱怨。 – 2011-01-12 19:29:08

回答

0

你真的向我們展示了代碼之前,我們可以告訴您問題的原因是什麼,但是你描述的行爲可能

這是不良做法的一個例子,但考慮以下

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

這似乎是某種形式的錯誤..我遇到同樣的問題。如果我嘗試對我的主文件夾中的數據執行此命令,則會得到相同的錯誤。

但是,如果我將數據移動到不涉及任何擴展的路徑(即'/ tmp/data'),則程序執行正常。