I want to call external application from shell script, but this shell script gets parameters (from other script) in a single variable. All was OK until I did not have to use
If you're stuck with a single variable, you'll have to use eval:
$ show() { i=0; for param; do ((i++)); echo "$i>$param"; done; }
$ show '"single param" separate params'
1>"single param" separate params
$ eval show '"single param" separate params'
1>single param
2>separate
3>params
Note that the double quotes are eaten by the shell.