【问题标题】:How to run sh file in GIT Bash如何在 GIT Bash 中运行 sh 文件
【发布时间】:2021-07-07 20:26:54
【问题描述】:

我正在尝试在 Windows 的 GIT Bash 中运行 physusr.sh 文件。我正在尝试在 physusr.sh 文件中如下设置 java home。

    JAVA_HOME=C:/Program Files (x86)/IBM/WebSphere/AppServer
    JAVA_EXE=$JAVA_HOME/bin/java

    cd /H/US_L3/MLAdminBatchLocal/original

但是当我运行文件 GIT Bash 时遇到错误

./physusr.sh:第 1 行:意外标记 `(' 附近的语法错误

./physusr.sh:第 1 行:`JAVA_HOME=C:/Program Files (x86)/IBM/WebSphere/AppServer'

我曾尝试使用双引号、反斜杠,但我得到 no such file or directory 错误。我如何使这项工作。我应该使用任何其他工具运行这个 sh 文件吗?

【问题讨论】:

  • 注意:git-bash 与 Git 无关,它只是 bash 到 Windows 的一个端口,以便 Git 可以使用它。所以git 标签应该被省略。我会剪掉它。同样,java 标记也不合适,因为此错误只是 bash 语法等等。

标签: shell git-bash


【解决方案1】:

很可能是 '(x86)' 的 '(' 括号字符导致了问题。当它执行 bash 文件时,它可能会将其视为其他内容,而不是路径。因此,要解决此问题,请告诉执行程序整个事情是一条路径,或者我们可以说禁用对特殊字符(如括号)的不同处理,将路径放在单引号内。 因此,将其更改为:

JAVA_HOME='C:/Program Files (x86)/IBM/WebSphere/AppServer'
JAVA_EXE=$JAVA_HOME/bin/java

cd /H/US_L3/MLAdminBatchLocal/original

【讨论】:

  • @Learner - 详细说明:像“bash”这样的 shell 将“空格”视为单词分隔符,将“元字符”如“(”和“)”视为命令分组。建议:遵循 Spidey13 的优秀建议,并使用单引号。有关详细信息,请参阅此链接:4.3.1. How to Avoid Shell Interpretation。如果您觉得有帮助,请“点赞”并“接受”他的回复。
猜你喜欢
  • 2016-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多