修改bash参数并传递给java程序

时间:2013-09-15 16:22:27

标签: java bash shell unix

是否可以修改传递给bash程序的参数?然后将它们传递给Java程序?

我知道我们可以访问"$@"传递给bash程序的所有参数,我可以将它们传递给像java com.myserver.Program "$@"这样的Java程序。但是有可能修改"$@"中某些参数的值,然后用"$@"调用上面的java程序吗?

我也知道你可以使用"$@[1]"来访问参数的值,但我们如何迭代它们并在正确的位置更改值? 我也知道这个:

for arg
do
....
done

但是在do循环中,如何修改参数的值,然后调用java程序?

1 个答案:

答案 0 :(得分:4)

遍历位置参数中的每个项目,然后将它们添加到另一个数组中,并在需要时进行修改。

ARGS=()
for A in "$@"; do
    # Modify A then add it to args. 
    # A=${A//something/something} ## Just an example.
    ARGS+=("$A")
done

# Then call java:

java com.myserver.Program "${ARGS[@]}"

由于您正在处理位置参数,因此使用此for形式会更简单:

for A; do