Seu primeiro exemplo funcionará bem se você o chamar como
software_versions> /bin/sh -c "/opt/xxxxxx/software_versions/test2.sh 1 2 3 4"
Usando -c, você chama um subshell para executar o comando que o segue. Argumentos adicionais não serão passados para a sub-shell de qualquer maneira previsível. Você resolve isso enviando a string completa como argumento.