最近在做一个功能需要用java调用外部程序,其中有条指令需要去获取linux服务器cpu信息,
具体指令为:"lscpu | grep "Model name"| cut -f2 -d:"。
结果发现在java调用外部程序执行后没有内容输出,前面怀疑是双引号的问题,针对引号做了转义等等一堆操作,发现没有任何作用。后面发现是"|"的原因,需要调用
这个方法,于是重新改进:
String cmd="lscpu | grep \"Model name\" | cut -f2 -d:";
Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", cmd});
成功获得执行结果,nice。