Q:

How to find out whether a shell script is written in bash or sh

How can I find out whether a script is written in bash or sh?
The first line of the script is not helpful here, since on Linux, bash scripts have this line:
#!bin/sh
Actually, there are many distribution where /bin/sh is bash (maybe /bin/sh is a link to /bin/bash in those distributions), and not Bourne Shell. So if I try to run a script that is written in bash in, for example, FreeBSD, the result is not defined, since /bin/sh in FreeBSD is Bourne Shell, and not bash.
Is there are easy way to identify if a script is bash or sh?
Are there some distinctive things in syntax?

A:

Actually the shebang lines means something as some distributions like Debian don't use bash for /bin/sh but dash.
The simplest solution to determine if a shell script is bash is to use checkbashism - see man checkbashisms for details. 
checkbashisms should be packaged by different distributions, for Debian it is in the devscripts package - Fedora in devscripts-minimal (it used to be in rpmdevtools) and OpenSuSe in rpmlint-mini

