45

我是 Play framework 的初学者。$PATH我只是提取播放框架文件并提取它们并在全局变量中给出播放目录的路径。之后,当我在 ubuntu play help 上运行命令时,它给了我以下错误:

/usr/bin/env: sh: No such file or directory

任何线索为什么我面临这个错误以及如何解决它?

4

8 回答 8

94

如果脚本具有 windows 行结尾而不是 unix 行结尾,通常会发生此错误。

尝试在脚本上运行dos2unix并尝试再次运行命令以查看是否出现相同的错误。

dos2unix [filename]
于 2014-01-27T06:51:01.530 回答
14

我遇到了同样的问题,并使用 Notepad++ 解决了它,方法是单击编辑 -> EOL 转换 -> Unix,然后保存文件。

于 2016-10-17T13:27:45.850 回答
2

$PATH环境变量设置在~/.bashrc,~/.bash_profile~/.profile.

source相关配置文件或启动一个新的 bash 终端应该可以解决问题。

于 2013-08-11T14:03:57.567 回答
1

只需使用此链接将 sh 终端更改为 bash ,一切都应该没问题。

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
于 2013-08-11T13:50:47.393 回答
0

在新的 Macbook Pro 上运行时出现此错误,因为默认 shell 现在是 ZSH 而不是 Bash。只需键入bash进入 bash shell,然后正常运行您的脚本。

于 2020-01-13T14:27:04.657 回答
0

如果您的文件在文件开头使用“BOM”标头(字节顺序标记)进行 UTF-8 编码,也会发生这种情况。使用您的编辑器“删除 bom”。

于 2021-01-28T11:20:30.507 回答
0

我有同样的错误。我正在使用适用于 Linux 的 Windows 子系统。首先,我尝试通过输入来删除 Windows Lineendings tr -d '\r' < input.sh > output.sh。这实际上没有帮助,实际上路径实际上并不存在,而不是#!/usr/bin/env bash我需要#!/usr/bin/bash在脚本的第一行中使用。

于 2021-12-10T19:07:27.853 回答
-1

我在 react-native 中遇到了更严重的错误,因为我忘记为 android studio 添加环境变量

添加 .bashrc

`export ANDROID_HOME=$HOME/Android/Sdk
 export PATH=$PATH:$ANDROID_HOME/emulator
 export PATH=$PATH:$ANDROID_HOME/tools
 export PATH=$PATH:$ANDROID_HOME/tools/bin
 export PATH=$PATH:$ANDROID_HOME/platform-tools
于 2021-06-22T10:39:56.230 回答