是否可以修改传递给bash程序的参数?然后将它们传递给Java程序?
我知道我们可以访问"$@"
传递给bash程序的所有参数,我可以将它们传递给像java com.myserver.Program "$@"
这样的Java程序。但是有可能修改"$@"
中某些参数的值,然后用"$@"
调用上面的java程序吗?
我也知道你可以使用"$@[1]"
来访问参数的值,但我们如何迭代它们并在正确的位置更改值?
我也知道这个:
for arg
do
....
done
但是在do循环中,如何修改参数的值,然后调用java程序?
答案 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