if arguments is equal to this string, define a variable like this string if arguments is equal to this string, define a variable like this string bash bash

if arguments is equal to this string, define a variable like this string


Don't forget about spaces:

source=""samples=("")if [ $1 = "country" ]; then   source="country"   samples="US Canada Mexico..."else  echo "try again"fi


You can use either "=" or "==" operators for string comparison in bash. The important factor is the spacing within the brackets. The proper method is for brackets to contain spacing within, and operators to contain spacing around. In some instances different combinations work; however, the following is intended to be a universal example.

if [ "$1" == "something" ]; then     ## GOODif [ "$1" = "something" ]; then      ## GOODif [ "$1"="something" ]; then        ## BAD (operator spacing)if ["$1" == "something"]; then       ## BAD (bracket spacing)

Also, note double brackets are handled slightly differently compared to single brackets ...

if [[ $a == z* ]]; then   # True if $a starts with a "z" (pattern matching).if [[ $a == "z*" ]]; then # True if $a is equal to z* (literal matching).if [ $a == z* ]; then     # File globbing and word splitting take place.if [ "$a" == "z*" ]; then # True if $a is equal to z* (literal matching).

I hope that helps!


It seems that you are looking to parse commandline arguments into your bash script. I have searched for this recently myself. I came across the following which I think will assist you in parsing the arguments:

http://rsalveti.wordpress.com/2007/04/03/bash-parsing-arguments-with-getopts/

I added the snippet below as a tl;dr

#using : after a switch variable means it requires some input (ie, t: requires something after t to validate while h requires nothing.while getopts “ht:r:p:v” OPTIONdo     case $OPTION in         h)             usage             exit 1             ;;         t)             TEST=$OPTARG             ;;         r)             SERVER=$OPTARG             ;;         p)             PASSWD=$OPTARG             ;;         v)             VERBOSE=1             ;;         ?)             usage             exit             ;;     esacdoneif [[ -z $TEST ]] || [[ -z $SERVER ]] || [[ -z $PASSWD ]]then     usage     exit 1fi

./script.sh -t test -r server -p password -v