Ruby可执行文件不工作
在Ubuntu上 我已经为Ruby创建了一个可执行文件 bin/hello(文件名) 但是每当我从bin的父目录运行Ruby可执行文件不工作,ruby,linux,shell,Ruby,Linux,Shell,在Ubuntu上 我已经为Ruby创建了一个可执行文件 bin/hello(文件名) 但是每当我从bin的父目录运行bin/hello 它产生了:没有这样的文件或目录 我确信没有任何打字错误或任何事情 有什么问题吗?您必须使该文件可执行 chmod +x bin/hello 在那之后,通过写作来运行它 ./bin/hello 我认为您最有可能使用Windows新行(CRLF)保存该文件;第一行末尾之前不可见的CR会导致可执行搜索失败,并且由于回车,部分错误消息“擦除”自身 查看vim中的文件
bin/hello
它产生了:没有这样的文件或目录
我确信没有任何打字错误或任何事情
有什么问题吗?您必须使该文件可执行
chmod +x bin/hello
在那之后,通过写作来运行它
./bin/hello
我认为您最有可能使用Windows新行(CRLF)保存该文件;第一行末尾之前不可见的
CR
会导致可执行搜索失败,并且由于回车,部分错误消息“擦除”自身
查看
vim
中的文件,查看行末尾是否显示^M
。或者,您可以查看xxd bin/hello | head-n 10
的输出,查看是否出现0D 0A
(CR LF)。如果您怀疑CRLF,可以使用dos2unix
将文件修复回Unix(LF)换行符。您能提供更详细的信息吗?例如,错误消息看起来不完整。冒号(:)前面有什么东西吗?还是真的是空白的?另外,文件bin/hello
的模式是否设置为可执行?我运行了chmod+x bin/hello,是的,这就是我从Shell收到的所有消息。如果转到bin
目录并键入ruby hello
,它是否有效?或者,如果您键入,/hello
?ruby hello
正在工作,但不是/hello
您的$PATH中的第一个shell是什么?chmod+x
不是要使其可写,而是可执行的。OP在他的评论中声称他已经这样做了。您完全正确。该文件是使用Windows 8操作系统中的“我的文本编辑器”和远程FTP同步创建的。我基本上是直接使用vim和voila从shell创建文件的!成功了。非常感谢你的帮助!我认为这是一个非常好的问题和答案,因为如果许多Windows用户在本地环境中通过文本编辑器创建*nix可执行文件,他们可能会受到影响
./bin/hello