当我输入行时:
sed -i 's/DNS1="8.8.8.8"/DNS1="8.8.4.4"/' /etc/sysconfig/network-scripts/ifcfg-eth0
我得到了想要的结果(即 8.8.8.8 替换为 8.8.4.4),但是,我有一个 jave 程序传递了与此处所示相同的命令:
public static void swapDns() throws IOException, InterruptedException
{
Runtime rt = Runtime.getRuntime();
Process ps;
String cmd[] = {"sed","-i","'s/DNS1=\"8.8.8.8\"/DNS1=\"8.8.4.4\"/'","/etc/sysconfig/network-scripts/ifcfg-eth0"};
ps = rt.exec(cmd);
}
而且它不起作用。它不会改变任何东西。 sed/java 有问题,还是我遗漏了什么...
最佳答案
Java 程序是否可能在不同的环境下运行,也许 sed 不在路径中?否则它可能以没有网络脚本写入权限的用户身份运行?
关于java - sed 不在 java 程序中工作,但输入行在终端中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18003749/