Check out example codes for "bin/bash bad interpreter". It will help you in understanding the concepts better.

Code Example 1

#The ^M is a carriage return character. Linux uses the line feed character to mark the end of a line, whereas Windows uses the two-character sequence CR LF. Your file has Windows line endings, which is confusing Linux.
#remove the cariage character

sed -i -e 's/\r$//' NAME-OF-FILE.sh

Learn ReactJs, React Native from akashmittal.com