0
我一直試圖循環低谷列表文件並根據它們的編號對它們進行操作。我第一次使用ls
命令試過,但輸出是不是列表:使用bash循環瀏覽文件列表 - 語法錯誤
data="data2/Scerevisiae-Pho4/"
results="results3/"
samples=("GSM730517" "GSM730528")
if [ ! -d $results ]
then
mkdir $results
fi
for sam in ${samples[@]}
do
if [ ! -d $results$sam ]
then
mkdir $results$sam
fi
echo -e "Reading $sam directory $data$sam... \n"
files=$(ls $data$sam)
echo ${files[0]}
done
輸出
echo ${files[@]}
SRR217304.sra SRR217305.sra
echo ${files[0]}
SRR217304.sra SRR217305.sra
我想這個不同的語法:
files=($data$sam/*)
它好工作在本地,但然後我將這個shell代碼用於snakemake工作流程,然後引發語法錯誤:
syntax error near unexpected token `('
我猜這是一個問題與bash解釋器?任何線索我怎麼能通過這些文件循環?
感謝
編輯: 我也試過
files=$data$sam/*
其輸出
echo ${files[0]}
data2/Scerevisiae-Pho4/GSM730517/*
你在腳本的頂部是否有'#!/ bin/bash'? –
你甚至不需要'文件'變量。只需使用'echo'$ data $ sam「/ *' – anubhava
我需要一個變量,因爲我需要對每個目錄中的文件進行計數,然後循環併合並它們(如果有多個)。 – rioualen