我想在bash脚本中构build一个基本的Java类path。
这个命令解决了所有的jar文件在我的path:
find ~/jars | grep \.jar$
这列出了我想要的path中的所有jar文件,每行一个。
如何将这些行连接在一起,以便将它们分隔开,并将其分隔开:
当我调用Java时,将其放入一个variables中,可以在脚本中使用它们。
例如:
JARS=`find ~/jars | grep \.jar$` #### somehow make JARS into one line with : between entries java -cp $JARS ...
你可以管它,并用sed改换新行,为:
sed ':a;N;$!ba;s/\n/:/g'
全部一起,
find ~/jars | grep \.jar$ | sed ':a;N;$!ba;s/\n/:/g'
你也可以用tr
来做,尽管它留下了一个尾随的冒号( glenn jackman comment ):
find ~/jars | grep \.jar$ | tr '\n' ':'
基于SED:如何替换换行符(\ n)?
如果您已经使用过find
,则不需要管道。
找到有-regex
和-name
选项,也有printf
可用:
你可以尝试这个你的要求:
find ~/jars -name "*.jar" -printf"%p "
我没有测试,但它会输出全路径,空格分开的所有罐子。
jars=($(find ~/jars -type f -name \*.jar)) # save paths into array classpath=$(IFS=:; echo "${jars[*]}") # convert to colon-separated java -cp "$classpath" ... # and use it