Overrible predefined Bash variables with arguments
Can someone point me out what is the proble开发者_如何学Pythonm when I want to overrible a default value in a variable with an argument in Bash? The following code doesn't work:
#!/bin/bash
VARIABLE1="defaultvalue1"
VARIABLE2="defaultvalue2"
# Check for first argument, if found, overrides VARIABLE1
if [ -n $1 ]; then
VARIABLE1=$1
fi
# Check for second argument, if found, overrides VARIABLE2
if [ -n $2 ]; then
VARIABLE2=$2
fi
echo "Var1: $VARIABLE1 ; Var2: $VARIABLE2"
I want to be able to do:
#./script.sh
Var1: defaultvalue1 ; Var2: defaultvalue2
#./script.sh override1
Var1: override1 ; Var2: defaultvalue2
#./script.sh override1 override2
Var1: override1 ; Var2: override2
Thanks in advance :)
You're missing the fi
for the first if
. But actually you're in luck: there's an easier way to do what you're doing.
VARIABLE1=${1:-defaultvalue1}
VARIABLE2=${2:-defaultvalue2}
From man bash
:
${parameter:-word}
Use Default Values. If parameter is unset or null, the expansion of word is substituted. Otherwise, the value of parameter is substituted.
精彩评论