моя проблема:
#!/bin/bash
function testFunc(){
echo "param #1 is :" $1
echo "param #2 is :" $2
}
param1="param1"
param2="param2"
testFunc $param1 $param2
Таким образом, выход:
param #1 is : param1
param #2 is : param2
Но когда я устанавливаю param1 в пустую строку:
param1=""
Тогда вывод будет парой:
param #1 is : param2
param #2 is :
Я думаю, проблема в том, что когда первый параметр пуст, он не объявляется, поэтому он фактически не передается как параметр функции.
Если это проблема, то есть способ объявить переменную "пустая строка" в bash, или есть ли какое-либо обходное решение для получения ожидаемого поведения?
Примечание. Он работает как ожидалось, если я вызываю функцию следующим образом:
testFunct "" $param2
Но я хочу, чтобы код был чистым.
UPDATE:
Недавно я обнаружил флаг -u, который вызывает ошибку в случае, когда будет использоваться несвязанная переменная.
$ bash -u test.sh
param #1 is : param1
test.sh: line 5: $2: unbound variable