繁体   English   中英

奇怪的行为:export CLASSPATH = $(JARS =(./ lib / *。jar); IFS = :;回显“ $ {JARS [*]}”)

[英]strange behaviour : export CLASSPATH=$(JARS=(./lib/*.jar); IFS=:; echo “${JARS[*]}”)

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[*]}")

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

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

确保您的Shell脚本顶部有#!/bin/bash 数组语法VAR=(...)是一种bash-ism。 它在普通sh( #!/bin/sh )中不起作用。

顺便说一句,这就像我在这里回答的那句话 如果是这样,我鼓励您使用更新的解决方案,而不要使用此解决方案。

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

 java -cp "$LIB/*" 

(阅读更多)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM