【问题标题】:shell script interpreter not identifying the pathshell 脚本解释器无法识别路径
【发布时间】:2014-09-24 21:26:16
【问题描述】:

我可以在shell中成功运行以下命令。

export ANT_HOME=/users/user1/workspace/apache-ant-1.7.0

但是当我在 shell 脚本中添加同一行时,我收到以下错误。

`/users/user1/workspace/apache-ant-1.7.0': 不是一个有效的标识符

shell 解释器将路径中的 -1.7.0 作为算术运算。

我该如何解决这个问题?

编辑:我要运行的 shell 脚本在这里。

#!/bin/sh

settingsForANT()
{

export ANT_HOME=/users/user1/workspace/apache-ant-1.7.0
export PATH=${PATH}:${ANT_HOME}/bin

echo $ANT_HOME
echo $PATH

}

settingsForANT

【问题讨论】:

  • 我认为这不可能。你能在你设置这个变量的地方显示你的脚本的一部分吗?你的脚本顶部还有#!/bin/bash吗?

标签: shell sh


【解决方案1】:

您很可能在ANT_HOME 之前有一个$,或者在= 之后有一个空格,可能是后者。

它抱怨你的路径是一个无效的标识符,这意味着它在分配的左边,而不是右边。

如果事实并非如此,请检查您运行脚本的 shell。有些不允许合并set/export,您可能需要:

ANT_HOME=whatever; export ANT_HOME

【讨论】:

  • 在任何类似sh 的shell 中使用set 会将第一个位置参数($1) 设置为字符串ANT_HOME=whatever
  • +1,但是,对于 = 之后的空格,这将使路径成为 export 的单独参数,因此被视为标记为导出的标识符。
  • +1。它现在正在工作。罪魁祸首是 ANT_HOME 之后的尾随空格。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-25
  • 2016-09-11
  • 2015-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多