0

尝试从 shell 脚本执行 blat http://www.blat.net/ 。我设置了环境PATH变量,我可以blat使用命令提示符从任何位置调用。从命令行发送电子邮件工作正常。但我无法从 shell 脚本中调用它。

(简化的)脚本

#!/bin/bash
blat

我得到:

$ sh script.sh
script.sh: line 2: blat: command not found

我也尝试过指定绝对路径C:/Windows/System32/blat,但这也不起作用。

4

1 回答 1

2

有很多方法可以解决这个问题。如果你只从 Bash 运行 blat,你可以把它放在/usr/local/binAKA中C:\cygwin64\usr\local\bin

如果您需要从 Bash 和 cmd/PowerShell 运行它,Windows“开箱即用”对此的支持很差。使用 Linux/Bash,您的 PATH 通常看起来像这样:

/usr/local/bin:/usr/bin

这很棒,因为您有一个系统空间和一个用于程序的用户空间。但是 Windows 看起来像这样:

C:\Windows\System32;C:\Windows

正如您所看到的,默认情况下 PATH 仅具有系统空间。这很糟糕,因为它鼓励人们做一些愚蠢的事情,例如将用户程序与受保护的操作系统文件放在一起。Windows 需要的相当于 /usr/local/binPATH 上的一个文件夹,位于人们可以转储命令行程序的所有内容之前。在此之前,您只需添加自己的:

  1. 移至blat.exe_C:\Users\<user>\Documents

  2. 将其添加到 PATH:

    SETX PATH "%PATH%;C:\Users\<user>\Documents" /M
    

当您将它添加到 Windows PATH 时,它会自动添加到 Bash PATH,因此该程序应该可用于所有 shell。

于 2015-07-15T00:57:38.557 回答