在bash中传递文件args

时间:2010-12-05 21:25:26

标签: java bash jar

bash脚本应该做一件事;即;将一个接一个的文件名列表以空格分隔到jar文件中。

以下是脚本的一部分

for(i=1;i<=5;i++) do
java <myjar.jar>file$i
done

我希望java <myjar.jar> file$i行在执行脚本时的样子是

java <myjar.jar> file1 file2 file3 file4 file5

任何帮助?谢谢!

3 个答案:

答案 0 :(得分:3)

既然是bash,就这样做:

java <myjar.jar> file{1..5}

答案 1 :(得分:1)

一种方法是利用自动shell文件名扩展:

java myjar.jar file[1-5]

以上假设文件存在于文件系统中。或者,您可以执行以下操作:

java myjar.jar `for i in 1 2 3 4 5; do echo file$i; done`

如果您有大量项目,seq命令将有所帮助:

java myjar.jar `for i in $(seq 500); do echo file$i; done`

答案 2 :(得分:0)

#!/bin/bash
declare -a listn
for n in $(seq $2 $3) ; do
    listn=("${listn[@]}" $n)
done

java "$1" "${listn[@]}"

用三个参数调用脚本:

./the_script myjar.jar 1 5

第一个参数是你的jar名字,下一个是序列中的第一个数字,最后一个是最后的数字。