2015-05-11 27 views
1

擴展變量中的目錄我有一個makefile文件(下面),其中包含一個「原始數據」文件夾 - 一組來自同事的文件,我製作了一個R腳本對其中一些文件進行分析。然後,我想要使用makefile來將目錄分配給變量RAWDIR,然後使用該變量指定R腳本的make依賴關係,並將其作爲腳本的命令行參數。通常在shell中,使用雙引號和花括號擴展帶空格的目錄,但我不知道這對於make文件是否也是正確的,就像下面的makefile一樣,我得到消息make: *** No rule to make target「」../Raw',需要pulls'. Stop.所以我不認爲我的文件路徑分配給RAWDIR正在擴大。使用make

謝謝。

RAWDIR="../Raw Data/Fc Project Raw Data" 

.PHONY: dirs 

pulls: dirs "${RAWDIR}/pm_fc_dnds_cleandata.csv" "${RAWDIR}/fc1_seqs.fasta" "${RAWDIR}/fc2_seqs.fasta" "${RAWDIR}/pm1_seqs.fasta" "${RAWDIR}/pm2_seqs.fasta" 
    Rscript Allele_Pulling.R "${RAWDIR}/" "${RAWDIR}/pm_fc_dnds_cleandata.csv" 

dirs: 
    mkdir -p -v Pulled_Allelic_Pairs/Unaligned/FC 
    mkdir -p -v Pulled_Allelic_Pairs/Unaligned/PM 
    mkdir -p -v Pulled_Allelic_Pairs/Unaligned/Both 
    mkdir -p -v Pulled_Allelic_Pairs/Unaligned/FC1PM1 
    mkdir -p -v Pulled_Allelic_Pairs/Unaligned/FC1PM2 
    mkdir -p -v Pulled_Allelic_Pairs/Unaligned/FC2PM1 
    mkdir -p -v Pulled_Allelic_Pairs/Unaligned/FC2PM2 
    mkdir -p -v Pulled_Allelic_Pairs/Aligned/FC 
    mkdir -p -v Pulled_Allelic_Pairs/Aligned/PM 
    mkdir -p -v Pulled_Allelic_Pairs/Aligned/Both 
    mkdir -p -v Pulled_Allelic_Pairs/Aligned/FC1PM1 
    mkdir -p -v Pulled_Allelic_Pairs/Aligned/FC1PM2 
    mkdir -p -v Pulled_Allelic_Pairs/Aligned/FC2PM1 
    mkdir -p -v Pulled_Allelic_Pairs/Aligned/FC2PM2 
+1

我不相信'make'瞭解報價在路徑名字符串或空間;它來自一個較老的年齡,當人們不這樣做時,因爲當你試圖在目錄中包含空格時它會受到傷害。錯誤消息與該觀察一致。 –

回答

1

通常,路徑名中的空格不被make很好地支持。 GNU make中的至少一些功能可以處理被\轉義的空間。

下應該在你的使用情況工作:

RAWDIR="../Raw\ Data/Fc\ Project\ Raw\ Data"