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

标签 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"

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

最佳答案

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

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

关于java - 使用 echo 命令将八进制字符串写为 ASCII 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28251166/

相关文章:

python - 在 python 中连接 Bash 命令

Linux - 在特定时间启动 recordmydestop

java - 使用 Java 中的空参数执行 shell 脚本

java - GridBagLayout 未在图像加载时调整大小

java - NetBeans 中的 JUnit

C: stdout 挂起 linux 管道

linux - 将文件名参数从 Bash 传递到 Perl

java - 我如何在将项目添加到组合框时停止触发 swing JComboBox itemlistener。

linux - 当我从数据库中删除项目时,为什么 libicudata.so 没有变小?

python - 如何将 linux 命令的输出通过管道传输到 python 脚本?