Fastq-dump script download X spots or all Im trying to write a script where an optional input of -X flag can be used, or if that info is not available download all reads.

my script as follow:

# usage : bash dump_qc.sh &lt;run id&gt; &lt;number of reads&gt;

#run id variable.
SRR=$1

#maximum reads variable
X=$2

fastq-dump --split-3 -X ${X} ${SRR}


So, if I run the script

bash dump_qc.sh SRR1234 100


Will download 100 reads from the specified SRR file.

What I would like to do is to make the second argument optional, if not specified download the whole data set!
You don't need to copy your arguments into variables, you can just use $1 directly. Anyway, this should be enough:

#!/bin/bash
# usage : bash dump_qc.sh &lt;run id&gt; &lt;number of reads&gt;

if [ -z $1 ]; then
  echo "ERROR: at least one argument need to be given!" &gt;&amp;2
  exit 1
fi

if [ ! -z $2 ]; then
    x="-X '$2'"
fi

fastq-dump --split-3 "$x" "$1"