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

Writing an octal string as ASCII characters using echo command

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

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

    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 "abc7777777777777777"

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

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

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