gravatar for nadarajan_v

2 hours ago by

In bash, I have created a function. In this function, I am constructing an URL that will be used to download a selected chromosome, unzip it and save it as a fasta file using curl. The following is my code.

 #!/bin/bash
function getSequence {
#echo $1
URL="http://hgdownload.cse.ucsc.edu/goldenPath/hg38/chromosomes/chr" 
UNZIP=".fa.gz | gunzip -c > chr"
FE=".fa"
SPACE=" "
FINAL="$SPACE$URL$1$UNZIP$1$FE"

curl "$FINAL"

}

echo "Enter a number between 1-22 or the letters X or Y"
read chromosome
regex='^[0-9]+$'
if [[ $chromosome =~ $regex ]]
then
if [ $chromosome -gt 0 -a $chromosome -lt 23 ]
    then
        #echo "$chromosome is numeric"
        getSequence $chromosome
    else
        echo "Your input is invalid!"
fi
else
if [ $chromosome = "y" ] || [ $chromosome = "Y" ]
then 
    echo "You entered $chromosome"
elif [ $chromosome = "x" ] || [ $chromosome = "X" ]
then 
    echo "You entered $chromosome"
else
    echo "Your input is invalid!"
fi
fi

echo "$FINAL", gives hgdownload.cse.ucsc.edu/goldenPath/hg38/chromosomes/chr20.fa.gz | gunzip -c > chr20.fa
If I copy and paste on the terminal it works fine. However, the line curl "$FINAL" in the function causes this error:
curl: (3) URL using bad/illegal format or missing URL

Thanks



Source link