Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby可执行文件不工作_Ruby_Linux_Shell - Fatal编程技术网

Ruby可执行文件不工作

Ruby可执行文件不工作,ruby,linux,shell,Ruby,Linux,Shell,在Ubuntu上 我已经为Ruby创建了一个可执行文件 bin/hello(文件名) 但是每当我从bin的父目录运行bin/hello 它产生了:没有这样的文件或目录 我确信没有任何打字错误或任何事情 有什么问题吗?您必须使该文件可执行 chmod +x bin/hello 在那之后,通过写作来运行它 ./bin/hello 我认为您最有可能使用Windows新行(CRLF)保存该文件;第一行末尾之前不可见的CR会导致可执行搜索失败,并且由于回车,部分错误消息“擦除”自身 查看vim中的文件

在Ubuntu上

我已经为Ruby创建了一个可执行文件

bin/hello(文件名)

但是每当我从bin的父目录运行
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