使用echo命令将八进制字符串写为ASCII字符

时间:2015-01-31 11:38:54

标签: java linux shell exec sh

我正在尝试从java代码创建一个shell脚本。我正在使用以下方法来创建shell脚本。

 String cmd = "echo -e \"echo -e abc\\\0177\\\0177\\\0177\\\0177\\\0177\\\0177\\\0177\\\0177\" > ";

    String [] commands = { "/system/bin/sh", "-c", cmd + "script.sh " }; 
    Runtime.getRuntime().exec(commands);

但是,当我打开script.sh文件时,我看到以下内容:

echo -e abc\*7\*7\*7\*7\*7\*7\*7\*7

我想要的是以下内容:

echo -e "abc\0177\0177\0177\0177\0177\0177\0177\0177"

我在做什么问题?知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

不确定为什么需要这个,但你可以在echo和2个反斜杠中使用单引号:

String cmd = 
 "echo -e 'echo -e abc\\\\0177\\\\0177\\\\0177\\\\0177\\\\0177\\\\0177\\\\0177\\\\0177' > ";