This is most certainly a permissions issue. Make sure that the file you're trying to execute with the ./ command from your script has +x perms. Here's a previous thread about giving files executable permissions: Creating executable files in Linux.
If the file already has +x rights, it could be a permissions issue with your script running the commands. Either way, if you can run ls but not ./ and top, has to be permissions.
Edit: The link I gave, I realize has a lot of info about Perl and bash scripts. The important part is that the command to make a file executable is
chmod +x ProgramName