zoukankan      html  css  js  c++  java
  • 菜鸟--shell脚本编写之解决问题篇

     一、执行时发现adb shell进入设备后不再继续往下执行了

    adb shell
    cd /system/plugin/
    ....
    exit

    在网上查到的都是bat文件调用adb shell,没有sh文件调用adb shell不往下执行的,查找其他无果。

    最后采用这个方法

    adb shell < 1.txt

    在1.txt里输入想在设备里运行的命令,可达到预期。

    二、1.txt中返回${res} ,想在父脚本中引用${res} 

    解决办法:父shell和子shell之间的变量传递

    ①如果想在子shell中调用父shell中的变量,在父shell中export变量就行

    #!/bin/bash
    
    exp8temp="hello shell"
    
    echo $exp8temp

    ②如果是想在父shell中调用子shell中的变量,方法有很多,可参考:http://blog.csdn.net/dreamcoding/article/details/8519689/

    我的情况比较特殊,是设备里运行的参数要在设备外使用,使用了命令替换和命名管道都不管用,使用中间文件法可解决。

    先把在设备上运行的参数存在设备临时文件tmp.txt,退出脚本后,把tmp.txt pull到本地,再在本地 read res < tmp.txt

    adb pull /system/plugin/temp.txt .
    
    read res < temp.txt

    echo $res

    很笨的方法,应该有更好的办法,目前还处于菜鸟级别,希望每天进步一点,以后再回头来看有无更好解决办法。。

    三、将命令结果存在文件中

    res=`ls | grep appname`
    echo "$res" > temp.txt

    四、查询到某个进程,并kill掉

    ID=`ps | grep "abc" | awk '{print $2}'` 
    echo $ID 
    echo "---------------" 
    for id in $ID 
    do 
    kill -9 $id 
    echo "killed $id" 
    done 
    echo "---------------"
  • 相关阅读:
    【C#】ArcFace2 视频人脸比对教程
    C#二次封装虹软arc研究
    【Linux】Face Recognition的封装
    人脸识别 ArcFace Demo [Windows]
    Python创建一个简单的区块链
    Mac更新系统后提示xcrun error
    Hyperledger Fabric开发(二):创建网络
    Hyperledger Fabric开发(一):环境配置
    mac OS和win7笔记本实现文件共享
    代码行数统计的Java和Python实现
  • 原文地址:https://www.cnblogs.com/biang/p/6700876.html
Copyright © 2011-2022 走看看