奇怪的行为:导出类路径=$(JARS=(./lib/*.jar);IFS=:;回声"${JARS[*]}")

  • 本文关键字:JARS IFS 回声 jar lib 路径 java bash
  • 更新时间 :
  • 英文 :

export CLASSPATH=$(JARS=(./lib/*.jar); IFS=:; echo "${JARS[*]}")

如果我把这条线放在一个bash_script.sh里,然后做

chmod +x bash_script.sh

然后运行

./bash_script.sh

它给出了错误。

Syntax error: "(" unexpected (expecting ")")

我怎么能够直接从提示符运行这个东西并获得预期的结果。如

$ export CLASSPATH=$(JARS=(./lib/*.jar); IFS=:; echo "${JARS[*]}")

我想知道这种奇怪行为的原因是什么。

确保在

shell 脚本的顶部有#!/bin/bash。数组语法VAR=(...)是一种 bash-ism。它不会在普通sh(#!/bin/sh(中工作。

顺便说一下,这看起来像我在这里回答的一行。如果是这样,我鼓励您使用我更新的解决方案而不是这个。

无需手动构建类路径列表。Java 支持包含 jar 文件的目录的便捷通配符语法。

java -cp "$LIB/*"

(阅读更多(

添加#!/bin/bash作为第一行,以强制它在 bash shell 中运行。

最新更新