ProcessBuilder 执行 echo 加换行符的问题

Cosmo chen 2020-10-12 10:58:31
如以下代码, ProcessBuilder 执行echo -n '123 \n456' | cut -c2-3 会报Unmatched '. , 想问题以下大神有什么方法解决,谢谢。
        String comArray[] = new String[]{"/bin/csh", "-cf", "echo -n '123 \n456' | cut -c2-3"};
StringBuffer sb = new StringBuffer();
ProcessBuilder builder = new ProcessBuilder(comArray);

builder.redirectErrorStream(true);
Process process = builder.start();

InputStream input = process.getInputStream();
InputStreamReader isr = new InputStreamReader(input, "GBK");
BufferedReader br = new BufferedReader(isr);
String line = "";
while ((line = br.readLine()) != null) {
sb.append(line + "\n");

}
br.close();
System.out.println(sb.toString());
...全文
3456 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cosmo chen 2020-10-17
  • 打赏
  • 举报
回复
控制台的没问题的,python 运行也可以,在java中要 把 /bin/csh , 改为 /bin/sh ,不知什么csh不行。
qybao 2020-10-13
  • 打赏
  • 举报
回复
你先把命令用控制台的命令行检证,看看命令有没有问题 然后程序打印标准错误的全部内容,查看详细原因

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧