1

如何将 shell 脚本的整个参数列表传递给程序?

例如,如果我有一个名为 JavaFoo 的 Java 程序,它可以接受任意数量的参数,这应该在我的脚本中调用。

如何将脚本的参数传递给 java 程序?

4

1 回答 1

1

在 Bash 中:

#!/usr/bin/env bash
java /path/to/JavaFoo "$@"

将所有参数单独引用为传递给 Bash 脚本本身。也适用于 Dash,但我不知道其他与 Bourne 兼容的 shell。

假设您想将除第一个参数之外的所有参数传递给 Java 程序的 shell 脚本,使用shift如下:

#!/usr/bin/env bash
shift
java /path/to/JavaFoo "$@"

shift如果需要,在传递参数之前使用更多实例来删除更多参数。

假设你调用 shell 脚本 ( myscript) 如下:

./myscript a b c

shift摆脱a。再加一个shift,它也摆脱了b"$@"即使您可以像$0在许多 shell 中一样访问它,脚本本身的名称也不包括在内。

于 2012-05-18T16:51:19.967 回答