我有一个(java)软件项目,其源文件是几个目录。
如果我在.zshrc文件中执行以下操作:
J=dir1/*.java dir2/*.java dir3/*.java ...
export J
然后我得到环境太大的错误
通常我使用makefile树来一次编译一个目录(程序包),但是有时关系更改太混乱了,所以我这样做:
javac $J
重新编译整个批次。
问题:我可以做点什么来引用列表,例如
J="dir1/*.java dir2/*.java dir3/*.java ..."
export J
环境很小,但使用该变量时会扩展文件名列表。
我知道我可能会喜欢
javac `eval ls $J`
但是我希望调用仍然可以很简单。
答案 0 :(得分:1)
您可能想要
J=(dir1/*.java dir2/*.java dir3/*.java ...)
(不需要export
,因为源.zshrc
)。设置J
后,您就可以运行
javac $J
或更明确地显示(不带花括号)
javac ${J[@]}
是否需要引用取决于已启用的外壳选项,但是默认情况下zsh
中不需要它们。