![将数组从 Shell 脚本传递到 Java](https://linux22.com/image/144553/%E5%B0%86%E6%95%B0%E7%BB%84%E4%BB%8E%20Shell%20%E8%84%9A%E6%9C%AC%E4%BC%A0%E9%80%92%E5%88%B0%20Java.png)
我有如下数据,我想立即从 shell 脚本直接传递到 Java main 方法。
1 firstfile.txt Success
2 secondfile.txt Failed
3 thirdfile.txt Success
我知道我可以按如下方式调用 java,其中var1
和var2
只代表单个字符串:
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 程序看不到引号。