Shell脚本 - 找不到命令

时间:2013-12-08 01:16:28

标签: shell cygwin

#!/bin/sh
echo "Hello from sh"

当我运行这个程序(hello.sh)时,我得到一个命令not found error。我在Windows上使用cygwin,我查看了cy的FAQ。它说要将权限更改为755.我已经这样做但仍然没有运气。我对其他两个程序也有同样的错误。

#!/usr/bin/env python
print "Hello from python"

#!/usr/local/bin/perl
print "Hello from perl\n";

任何答案都表示赞赏。感谢。

3 个答案:

答案 0 :(得分:4)

如前所述,您需要将Cygwin二进制文件添加到路径中。为此,请右键单击“我的电脑”,单击“属性”,然后单击“高级”,再单击“环境变量”。

创建一个名为CYGWIN_HOME且值为C:\cygwin的新环境变量(或安装cygwin的任何位置。默认位置为C:\cygwin\,因此这可能对您有用。)

然后编辑名为“PATH”的环境变量,并将以下内容添加到最后:

;%CYGWIN_HOME%\bin;%CYGWIN_HOME%\sbin;%CYGWIN_HOME%\usr\bin;%CYGWIN_HOME%\usr\sbin;%CYGWIN_HOME%\usr\local\bin;%CYGWIN_HOME%\usr\local\sbin

关闭命令提示符,然后重新打开它。现在应该可以获得cygwin二进制文件。你可以输入“which bash”来仔细检查。它应该报告bash可执行文件的位置

答案 1 :(得分:0)

我没有找到"命令" Perl脚本上的错误。该脚本有shebang行:"#!/ usr / bin / env perl"作为第一行,我的用户是拥有执行权限的所有者。我试图使用命令行运行脚本" ppminstall.pl?" (该脚本设置为显示使用脚本的文档,如果传递了'?'参数)。我是cd到包含脚本的目录。解决方案是使用" ./ ppminstall.pl?"来运行它,即显式指定当前目录。我想你可以添加"。"到当前路径并使原始命令行工作,但使用" ./"对我来说似乎更安全。运行它,因为它非常清楚你要运行的脚本所在的位置。有人可能会操纵您的Path变量并导致您运行您不想要的脚本版本。 '。'和' /'角色很容易打字而不会把眼睛从屏幕上移开,因此这似乎是一个有用的习惯。当然,我不知道这是不是你的问题,但它是我的。

答案 2 :(得分:0)

也许是由于错误的换行引起的?

在Notepad ++中打开此外壳,然后检查右下角的换行符是UNIX(LF)

如果没有,请单击文本Windows (CR LF),然后单击Convert to UNIX(LF)