Shell(bash)使用Java的runtime.exec扩展大括号
我正在尝试使用扩展命令来使用runtime.exec,但是大括号被解释为文字而不是被扩展。 这是我正在尝试做的事情:
String command = "mkdir -p Foldername{1,2,3}/InnerFolder"; Runtime.getRuntime().exec( new String[] { "sh", "-c", command } );
不幸的是,这给了我当前目录中名为“Foldername {1,2,3}”的单个文件夹,而不是“Foldername1”,“Foldername2”和“Foldername3”。 有没有人知道如何防止括号被解释为文字?
您正在尝试使用Bash通配符。 它们在Bash shell中解释。 您正在直接运行mkdir,因此没有shell来解释{}
。 您需要指定shell的路径
String command = "mkdir -p Foldername{1,2,3}/InnerFolder"; Runtime.getRuntime().exec( new String[] { "/bin/bash", "-c", command } );
来源 。