Почему я не нахожу никаких выходных файлов в нужном месте?
Я пытаюсь написать сценарий обработки, и я застрял в начале. Кажется, это не так, но я не могу просто понять, где находится ошибка, поскольку она завершает выполнение, но не дает никакого вывода. Любая помощь отладки?
#!/bin/sh
#
# Call with following arguments
# sh test.sh <output_basename> <fastq folder> <output_folder_loc>
#
#
bn=$1
floc=$2
outloc=$3
#Create an output directory
#opdir=$bn"_processed"
mkdir $outloc/$bn"_processed"
echo "output directory for fastq $outloc/$bn"_processed" ..."
fout=$outloc/$bn"_processed"
echo "$fout ..."
echo "performing assembly to create one fastq file for each read mates ..."
zcat $floc/*R1*.fastq.gz > $fout/$bn_R1.fastq
zcat $floc/*R2*.fastq.gz > $fout/$bn_R2.fastq
echo "done"
Команда запуска:
sh test.sh S_13_O1_122 /home/vdas/data/floc/Sample_S_13_O1_122_S12919 /home/vdas/data/OC/RNA-Seq/STAR_run/mut_out
Я не вижу никаких ошибок в коде, и он также работает без ошибок, но все еще не получаю никакого вывода. Кто-нибудь может указать мне проблему?
3 ответа
Сначала попробуйте изменить две строки следующим образом:
mkdir -p "$outloc/${bn}_processed"
fout="$outloc/${bn}_processed"
mkdir -p
хорошо когда $outloc
Каталог еще не существует.
Вы можете проверить свои аргументы (следующее может быть только в bash, но работает, когда bash вызывается как / bin / sh)
var=$1
if [ ${#var} -eq 0 ]; then
echo "var is not defined" >&2
exit 1
fi
это будет проверять, что переменная имеет некоторую длину, вы можете проверить и другие аспекты, например, делает
ls $floc/*R1*.fastq.gz
производить какой-либо вывод?
#!/bin/sh
#
# Call with following arguments
# sh test.sh <output_basename> <fastq folder> <output_folder_loc>
#
#
bn=$1
floc=$2
outloc=$3
#Create an output directory
#opdir=$bn"_processed"
mkdir $outloc/$bn"_processed"
echo "output directory for fastq $outloc/$bn"_processed" ..."
fout=$outloc/$bn"_processed"
echo "$fout ..."
echo "performing assembly to create one fastq file for each read mates ..."
echo $floc/*R1*.fastq.gz
echo $fout/$bn_R1.fastq
zcat -v $floc/*R1*.fastq.gz > $fout/${bn}_R1.fastq
zcat -v $floc/*R2*.fastq.gz > $fout/${bn}_R2.fastq
echo "done"
`
это может быть, что вы хотите,