[Android]Recovery调用外部Shell脚本,Shell脚本使用ui_print方法

busybox_bin=/sbin/busybox

# 获取PIPE
get_outfd(){
    if $busybox_bin ls -l /proc/self/fd/21 | $busybox_bin grep -q ‘pipe‘; then
        echo 21
    else
        local all_pipe_file=/tmp/all_pipe_file.txt
        $busybox_bin ls -l /proc/self/fd/ > $all_pipe_file
        $busybox_bin grep ‘pipe:‘ $all_pipe_file | $busybox_bin awk ‘{print $9}‘
    fi
}

OUTFD=$(get_outfd)

# 打印日志
ui_print(){
    if $busybox_bin test -n $OUTFD;then
        echo -n -e "ui_print $1\n" > /proc/self/fd/$OUTFD
        echo -n -e "ui_print\n" > /proc/self/fd/$OUTFD
    fi
}

ui_print "Iam here!!!"

在Shell脚本中可以使用ui_print可以方便调试Recovery环境运行的Shell脚本,也可以向用户提供关键的日志信息

时间: 2024-10-29 19:08:36

[Android]Recovery调用外部Shell脚本,Shell脚本使用ui_print方法的相关文章

[实用工具]Unity调用外部EXE或Shell命令

版权所有,转载须注明出处!喜欢火影.喜欢Java.喜欢unity3D.喜欢游戏开发的都可以加入木叶村Q群:379076227 1.开门见山的需求有的时候,我们想把一些外部命令集成到unity中,比如,你想通过点击Unity中的一个按钮,就更新SVN(假设该项目是受SVN管理的).那么,就涉及到一个Unity调用外部可执行文件.bat/shell等.这个需求是挺常见的,也是不难实现的. 2.简单明了的实现我们先封装一个命令调用的函数: [C#] 纯文本查看 复制代码 ? 01 02 03 04 0

Perl调用外部命令(其他脚本、系统命令)的方法和区别

1. `command`; 使用反引号调用外部命令能够捕获其标准输出,并按行返回且每行结束处附带一个回车.反引号中的变量在编译时会被内插为其值. 2. open LIST "ls -l|";    open MORE "|more";    @list=<LIST>;    print MORE @list;    close(LIST);    close(MORE);使用带管道的文件句柄来执行外部命令,使用方式与读写文件类似.可以从外部命令的输出读取

Python 调用外部命令

python 可以使用 os 模块来调用外部的 Linux Shell 命令,常用的方法如下: (1) os.system():结果输出在终端上,捕获不到(2) os.popen() : 结果返回一个对象,即标准输出(3) os.popen2():结果返回两个对象,分别是标准输入,标准输出(4) os.popen3():结果返回三个对象,分别是标准输入,标准输出,标准错误输出(5) os.popen4():结果返回两个对象,分别是标准输入,标准输出(标准输出中包括标准错误输出) In [2]:

下载Google官方/CM Android源代码自动重新开始的Shell脚本

国内由于某种原因,下载CM或Google官方的Android源代码总容易中断.总看着机器,一中断就重新执行repo sync还太麻烦,所以我特意编写了一段shell脚本(download.sh).通过获取shell最后返回的状态码来决定是否再次执行repo sync命令. #!/bin/bash echo "======start repo sync======" repo sync # 第一次下载android源代码 while [ $? != 0 ]; do echo "

qt中调用shell脚本并监控返回的方法

在QT中经常要调用外部命令或者是执行shell脚本,并且要对执行结果进行分析. QProcess runShellProcess =new QProcess(this); //调用过程输出的监控 connect(runShellProcess, SIGNAL(readyRead()), this, SLOT(readProcess())); connect(runShellProcess, SIGNAL(finished(int)), this, SLOT(finishedProcess()))

Java调用Shell命令和脚本,致力于hadoop/spark集群

前言 说明的是,本博文,是在以下的博文基础上,立足于它们,致力于我的大数据领域! http://kongcodecenter.iteye.com/blog/1231177 http://blog.csdn.net/u010376788/article/details/51337312 http://blog.csdn.net/arkblue/article/details/7897396 第一种:普通做法 首先,编号写WordCount.scala程序. 然后,打成jar包,命名为WC.jar.

Shell学习之: 脚本之间的调用

在Java,Python中,可以用import的方式来进行脚本或模块之间调用,例如: >>> import math >>> math.sqrt(4) 2.0 在Shell中要如何调用别的shell脚本,或别的脚本中的变量,函数呢? 方法一:   . ./subscript.sh       方法二:   source ./subscript.sh 注意: 两个点之间,有空格,千万注意. 两个脚本不在同一目录,要用绝对路径 为简单起见,通常用第一种方法 例如: main

Java调用Shell命令和脚本

1.介绍 有时候我们在Linux中运行Java程序时,需要调用一些Shell命令和脚本.而Runtime.getRuntime().exec()方法给我们提供了这个功能,而且Runtime.getRuntime()给我们提供了以下几种exec()方法: Process exec(String command) 在单独的进程中执行指定的字符串命令. Process exec(String[] cmdarray) 在单独的进程中执行指定命令和变量. Process exec(String[] cmd

用shell编写nginx脚本的启动,关闭,重加载

#!/bin/bash                 ----默认执行shell方式 #chkconfig: 2345 10 80        ----加入到开机执行的方式 path="/usr/local/nginx/sbin/nginx"        ----源代码安装nginx之后的启动路径 name="nginxd"    test=0 log=/tmp/nginxd.log                ----nginx的日志 DATE=`date