getting error /usr/bin/env: sh: No such file or directory when running command play

Solution 1:

This error usually happens if the script has windows line endings instead of unix line endings.

Try running dos2unix on the script and try running your command again to see if you get the same error.

dos2unix [filename]

Solution 2:

I had the same problem, and resolved it using Notepad++, by clicking Edit -> EOL Conversion -> Unix and then save the file.

Solution 3:

$PATH environment variable is set in ~/.bashrc, ~/.bash_profile or ~/.profile.

source the relevant configuration file or start a new bash terminal should solve the problem.

Solution 4:

Just change the sh terminal to bash using this link and everything should be fine.

1. Change user entry in /etc/passwd
a) edit /etc/passwd using any editor

$ vi /etc/passwd
b) find the line that belongs to the user (foo) that we about to modify
foo:x:1001:1001::/home/foo:/bin/sh
c) change from /bin/sh to /bin/bash
foo:x:1001:1001::/home/foo:/bin/bash
d) save
e) Logout and login back

2. Use chsh command
a) type chsh
$ chsh
b) You will be asked for password. Enter your password
c) This screen will appear
Enter the new value, or press ENTER for the default
Login Shell [/bin/sh]:
d) Put /bin/bash at the menu and press Enter

Solution 5:

I had the same error. I am using Windows Subsystem for Linux. First I tried removing the Windows Lineendings by entering tr -d '\r' < input.sh > output.sh. This did not help in fact the path actually did not exist instead of #!/usr/bin/env bash I needed to use #!/usr/bin/bash in the first line of my script.