I had to use some bash code called from /bin/bash as a command followed -c option. I got something that is difficult to understand. This passed as expected:
root@punk:/home/s# function a () { echo $1 "world";}&&a hello
hello world
root@punk:/home/s#
But this missed the parameter of the function
root@punk:/home/s# /bin/bash -c "function a () { echo $1 "world";}&&a hello"
world
root@punk:/home/s#
How to fix the second case?