ошибка при запуске R-скрипта в bash-скрипте - PullRequest
0 голосов
/ 11 июня 2019

e сделал скрипт bash следующим образом:

#! /bin/bash


OUTDIR=".//DATA/share/pipelines/results/"
INDIR="./DATA/share/pipelines/test_data/infile/"
projectname=$1
input_bam=$2
bins=$3

mkdir OUTDIR || true

of="${OUTDIR}"
ind="${INDIR}"


./DATA/share/pipelines/script.R \
    -b "${bins}" \
    -c "${projectname}" \
    -o "${of}" \
    -i "${ind}"

echo "first step is done"

когда я запускаю скрипт, используя следующую команду:

bash first.sh 30 beh

Я получу эту ошибку:

mkdir: cannot create directory ‘OUTDIR’: File exists
first.sh: line 17: ./DATA/share/pipelines/script.R: No such file or directory
first step is done

знаете ли вы, как решить проблему?

1 Ответ

1 голос
/ 11 июня 2019

при звонке

bash first.sh 30 beh

$1 содержит 30, $2 содержит beh и $3 не определено.

input_bam установлен на $2, но никогда не используется.

С помощью [ ! -d ${OUTDIR} ] вы сможете проверить, существует ли каталог.

#! /bin/bash

#Please check if it should be
# relative to the current working directory (starting with './')
# or absolute (starting with '/')
BASEDIR="/DATA/share/pipelines/" #"./DATA/share/pipelines/"
OUTDIR=${BASEDIR}"results/"
INDIR=${BASEDIR}"test_data/infile/"
projectname=$1
input_bam=$2  #This is never used
bins=$3  #This is not defined when callin >bash first.sh 30 beh<

[ ! -d ${OUTDIR} ] && mkdir ${OUTDIR} #Think you would create ${OUTDIR}

of="${OUTDIR}"
ind="${INDIR}"


./DATA/share/pipelines/script.R \
    -b "${bins}" \
    -c "${projectname}" \
    -o "${of}" \
    -i "${ind}"

echo "first step is done"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...