将数组从 Shell 脚本传递到 Java

将数组从 Shell 脚本传递到 Java

我有如下数据,我想立即从 shell 脚本直接传递到 Java main 方法。

1  firstfile.txt   Success
2  secondfile.txt  Failed
3  thirdfile.txt   Success

我知道我可以按如下方式调用 java,其中var1var2只代表单个字符串:

java $myJava "$var1" "$var2" 

但是我是否可以将上面的数据作为数组传递给Java?

答案1

您无法通过命令行从 shell 脚本传递 Java 数组。您可以传递表示数组的字符串列表。

例如,

a=(
    '1  firstfile.txt   Success'
    '2  secondfile.txt  Failed'
    '3  thirdfile.txt   Success'
)

printf "We will pass %d parameters:" ${#a[@]}; printf " '%s'" "${a[@]}"; printf "\n"
java "$myjava" "${a[@]}"

请注意,在We will pass...语句中,我在字符串周围添加了引号,以标记参数及其空格分隔的单词之间的差异。您的 Java 程序看不到引号。

相关内容