1. if `/home` is a separate partition, you can mount it with the `noexec` option.
2. By doing this, you are destroying (or attempting to) much of the functionality of a unix system for your users as it disables ALL user-written scripts, not just "malicious" ones. Writing scripts to get stuff done is a perfectly normal thing for unix users to do.
3. It still doesn't stop them from writing scripts and executing them with `bash myscript.sh` or `perl myscript.pl` etc.
4. If you don't have at least minimal trust in your users, don't give them a shell, or give them a restricted shell such as `/bin/rbash` instead of `/bin/bash`.