Java bash数组声明或切片不适用于ProcessBuilder
我有一个最简单的bash脚本Java bash数组声明或切片不适用于ProcessBuilder,java,linux,bash,shell,Java,Linux,Bash,Shell,我有一个最简单的bash脚本 arr=('one' 'two' 'three' 'four'); echo "${arr[@]:2}" > test.txt (事实上,我想使用${@:2}) 如果在命令行中使用./my_script.sh运行此脚本,它将按预期工作。但是当我尝试使用java ProcessBuilder时,test.txt文件从未被创建。(事实上,bash脚本在片上停止执行) 我在bash脚本中尝试了许多其他命令,processBuilder的一切都很好,除了“${@:2
arr=('one' 'two' 'three' 'four');
echo "${arr[@]:2}" > test.txt
(事实上,我想使用${@:2})
如果在命令行中使用./my_script.sh运行此脚本,它将按预期工作。但是当我尝试使用java ProcessBuilder时,test.txt文件从未被创建。(事实上,bash脚本在片上停止执行)
我在bash脚本中尝试了许多其他命令,processBuilder的一切都很好,除了“${@:2}”
例如,此脚本工作正常,并在我的项目目录中创建test.txt
echo "test" > test.txt
有人知道为什么吗?你试过
/bin/sh./compile\u evo.sh
?或者您可能在错误的目录中?当我运行ProcessBuilder pb=newprocessbuilder(“/bin/sh”,“/my_script.sh”)代码>它仍然可以使用简单的回显,但仍然不能使用第一个脚本。请确保您的脚本以#开头/bin/bash
shebangOh谢谢@glenn jackman,我没听到这句话。。。它解决了这个问题。
echo "test" > test.txt