首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在bash中传递文件参数

在bash中传递文件参数
EN

Stack Overflow用户
提问于 2010-12-06 05:25:26
回答 3查看 340关注 0票数 1

bash脚本应该做一件事,即向jar文件逐个提供由空格分隔的文件名列表。

以下是脚本的一部分

代码语言:javascript
复制
for(i=1;i<=5;i++) do
java <myjar.jar>file$i
done

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

代码语言:javascript
复制
java <myjar.jar> file1 file2 file3 file4 file5

有什么帮助吗?谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-06 05:29:12

因为它是bash,所以只需这样做:

代码语言:javascript
复制
java <myjar.jar> file{1..5}
票数 3
EN

Stack Overflow用户

发布于 2010-12-06 05:28:25

要做到这一点,一种方法可能是利用自动shell文件名扩展:

代码语言:javascript
复制
java myjar.jar file[1-5]

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

代码语言:javascript
复制
java myjar.jar `for i in 1 2 3 4 5; do echo file$i; done`

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

代码语言:javascript
复制
java myjar.jar `for i in $(seq 500); do echo file$i; done`
票数 1
EN

Stack Overflow用户

发布于 2010-12-06 20:56:11

代码语言:javascript
复制
#!/bin/bash
declare -a listn
for n in $(seq $2 $3) ; do
    listn=("${listn[@]}" $n)
done

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

并使用三个参数调用脚本:

代码语言:javascript
复制
./the_script myjar.jar 1 5

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4361297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档