Я думаю, что ваш второй подход более похож на GNU / Bash, НО вы не должны использовать кавычки вокруг него, в противном случае все содержимое $ stringparam будет рассматриваться как уникальный параметр вашей python-lib
исполняемой программой.
Вы должны удалить кавычки вокруг него, на этот раз - все пробелы следует рассматривать как разделитель параметров:
# Execution
python_lib \
"${force}" \
--p1="${varp1}" \
--p2="${varp2}" \
--p3="${varp3}" \
--p4="${varp4}" \
--p5="${varp5}" \
$stringparam # approach 2
Но чтобы избежать проблем со смешанными одинарными и двойными кавычками, вы должны использовать простые кавычки, когдапостроение переменной $ stringparam:
stringparam="$stringparam --param='${line}'"