On the first case you call the script with testFunct param2
. Hence, it understands param2
as the first parameter.
It is always recommendable to pass parameters within quotes to avoid this (and to be honest, for me it is cleaner this way). So you can call it
testFunct "$param1" "$param2"
So to pass an empty variable you say:
testFunct "" "$param2"
See an example:
Given this function:
function testFunc(){
echo "param #1 is -> $1"
echo "param #2 is -> $2"
}
Let’s call it in different ways:
$ testFunc "" "hello" # first parameter is empty
param #1 is ->
param #2 is -> hello
$ testFunc "hey" "hello"
param #1 is -> hey
param #2 is -> hello