How can I execute a script on the SD card and be able to pass arguments to it? I tried executing a script on the sdcard as is because on FAT, everything is 777.

./.profile
./.profile: permission denied


I added this as the initial command for the Android shell and it executes it just fine:

eval "$(cat /sdcard/.profile)"


So what I'm wondering is: Is there a way I can execute a script on the sdcard (other than the way I found out) and be able to pass arguments to it or do I need to do it the normal BTEP way (in its data directory)?
You will probably be unable to directly execute scripts from your sdcard. At least without root. Reason is, with most ROMs sdcards are mounted using the noexec flag -- which means, as the term suggests: "no exec from here". Of course, having root you could simply remount the sdcard while removing this option.

Why might this option be forced? I'd say for security reasons. While on internal storage, apps are quite limited regarding where they might write to, on sdcards they can write everywhere. So this could be used by some "evil guys/girls" to place their malware scripts -- but that's just a guess.