在我的cygwin bin中放置脚本链接

时间:2013-04-13 19:32:16

标签: shell cygwin

我制作了一些python脚本,但是有更简单的方法来运行它们吗?我正在使用cygwin。

python "C:\Users\Desk\Dropbox\scripts\wsort.py" > data11414_unsorted.txt < data11414_sorted.txt

我想要这样的东西(不输入路径名或“python”):

wsort > data11414_unsorted.txt < data11414_sorted.txt

其中wsort是指向我的真实wsort.py

的链接

3 个答案:

答案 0 :(得分:1)

添加一个 Shebang 到剧本

#!/bin/python

然后像这样调用

wsort.py > data11414_unsorted.txt < data11414_sorted.txt

答案 1 :(得分:1)

首先,您的问题有一个Windows风格的路径(反斜杠,以C:开头),而不是Cygwin路径(/cygdrive/c/Users/Desk/Dropbox/scripts/wsort.py)。这意味着你实际上并没有使用Cygwin,或者如果你是,你忽略了一堆警告。

下面假设你正在使用Cygwin Bash(如果你从开始菜单启动Cygwin终端,那应该是你得到的)和Cygwin Python(你使用Cygwin的setup.exe而不是Windows Python安装的)安装程序)。如果不是,那么你自己的生活将比你需要的更加困难。

顺便说一下,你需要采取一系列步骤:

  • 首先,使脚本可执行。从Cygwin Bash shell中使用chmod命令:

    chmod +x /cygdrive/c/Users/Desk/Dropbox/scripts/wsort.py
    
  • 其次,告诉系统 如何执行它。将以下行添加到脚本的顶部:

    #!/bin/python
    

    (这是一个“shebang”.Python将其视为注释,因此不会对它做任何事情,但Cygwin和其他类似Linux的系统将使用该行来查看运行该脚本的程序。 case,Python。)

  • 第三,确保你的行结尾是正确的。 Cygwin期望Linux行结束,没有它们就会失败。这可能不是问题,但这样做没有坏处。运行以下命令:

    dos2unix /cygdrive/c/Users/Desk/Dropbox/scripts/wsort.py
    

    此时,您可以通过在Cygwin中指定脚本的完整路径来调用脚本。如果没有明确指定脚本的位置,您就无法运行它。

  • 第四步是确保脚本“在您的路径中”,即在Cygwin查找要运行的脚本的其中一个文件夹中。有很多方法可以做到这一点,但最明智的可能就是将脚本目录添加到路径中。每当您启动新的Cygwin会话时,以下命令都会将脚本目录添加到路径中:

    echo 'PATH="/cygdrive/c/Users/Desk/Dropbox/scripts:$PATH"' >>~/.bashrc
    

    然而,您需要重新启动Cygwin终端才能生效。

    此时,您只需键入wsort.py即可在Cygwin中运行该脚本(因此可以在问题中使用重定向等等。)

  • 最后,为了能够简单地将其称为wsort,有许多选项。显而易见的是重命名文件。更有用(并且无需复制文件或做任何可能与Dropbox同步的事情),尝试创建别名:

    echo 'alias wsort=wsort.py'  >>~/.bashrc
    

    同样,您需要重新启动Cygwin终端才能生效。

答案 2 :(得分:0)

也许使用别名?

alias wsort = "Command_Used"