终端/ shell命令中的“-c”是什么?

时间:2014-04-26 06:57:34

标签: java android class runtime root

因此,当通过应用程序运行命令时,我实际上已经掌握了它。但如果您不了解某些特征,那又有什么意义呢?正确?

我的问题是“-c”究竟是什么意思?

Runtime.getRuntime().exec(new String[]{"su","-c","reboot bootloader"});

是的,该行将设备引导至引导程序但我想知道,-c是什么意思?我已经尝试过搜索但是不相关的东西正在涌现。

1 个答案:

答案 0 :(得分:1)

以下是一些如何找到答案的提示。

Java部分

  1. Google javadoc RunTime。这通常是获取正确Oracle文档的最快方式。

  2. 第一个链接是http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html,请关注它。

  3. 在javadoc页面上,搜索exec(String[] cmdarray)。点击链接(点击方法的exec名称)。

  4. 阅读javadoc:

    • 在单独的进程中执行指定的命令和参数。
    • 与调用exec(cmdarray, null, null)
    • 的行为完全相同
    • 使用三个参数找到描述相同方法的部分(点击exec名称)。
  5. 阅读exec(String[], String[], File)方法的javadoc。在阅读时,请考虑最后两个参数是null。你找到了

  6.   

    在单独的进程中执行指定的命令和参数...给定一个数组   字符串cmdarray,表示命令行的标记... mdarray    - 包含要调用的命令及其参数的数组

    这意味着你的代码

    Runtime.getRuntime().exec(new String[]{"su","-c","reboot bootloader"});
    

    就像从命令行运行命令su给它一些参数一样:

    su -c 'reboot bootloader'
    

    Linux部分

    使用google搜索su命令行参数。在这里你找到了

      

    su通常是将登录会话的所有权更改为root或任何其他用户的最简单,最方便的方法...   su中最常用的几个选项是-c,它告诉su执行在同一行上直接跟随它的命令。

    如您所见,您的代码将命令reboot bootloader称为根。

    你自己的部分

    下次,按照上述程序自行:)我现在投入了大量时间,请不要浪费它:)

    如果你在我的回答中感到轻微的讽刺,你可能并不是真的:)但请注意,这不是一个纯粹的 RFTM答案,它真的做< / em>回答你的问题,而且它会教你如何自己找到答案。