Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如果在脚本输出中找到新行,则执行命令_Android_Bash_Shell_Grep_Logcat - Fatal编程技术网

Android 如果在脚本输出中找到新行,则执行命令

Android 如果在脚本输出中找到新行,则执行命令,android,bash,shell,grep,logcat,Android,Bash,Shell,Grep,Logcat,我在编写一个简单的bash脚本时遇到了巨大的困难 我基本上希望全天候监视调试日志,并监听新行。如果有新行,我希望它执行命令 logcat | grep com.amazon.firelauncher/.Launcher 当我运行这段代码时,我会得到一个实时调试窗口,每当命令中出现新行时,我都希望执行一个命令(例如重新启动) 如何做到这一点?我尝试将输出发送到一个文件,并监视该文件的文件大小更改,但不起作用。我真的需要帮助 您应该能够使用read进行以下操作: #!/bin/bash while

我在编写一个简单的bash脚本时遇到了巨大的困难

我基本上希望全天候监视调试日志,并监听新行。如果有新行,我希望它执行命令

logcat | grep com.amazon.firelauncher/.Launcher
当我运行这段代码时,我会得到一个实时调试窗口,每当命令中出现新行时,我都希望执行一个命令(例如重新启动)


如何做到这一点?我尝试将输出发送到一个文件,并监视该文件的文件大小更改,但不起作用。我真的需要帮助

您应该能够使用
read
进行以下操作:

#!/bin/bash
while logcat | grep "com.amazon.firelauncher/.Launcher" | read -r line; do
    echo "Text read from logcat"
    /path/to/executable
done

您应该能够为此使用
read

#!/bin/bash
while logcat | grep "com.amazon.firelauncher/.Launcher" | read -r line; do
    echo "Text read from logcat"
    /path/to/executable
done

这是我最后的答案,但如果没有马丁·科内尼的帮助,我是不会得出结论的,因为所有的重担都是他做的

#!/bin/bash
am monitor | while read -r line; do
    if [[ $line == *"firelauncher"* ]]
    then
      am start com.newlauncher.launcher
    fi
done

这是我最后的答案,但如果没有马丁·科内尼的帮助,我是不会得出结论的,因为所有的重担都是他做的

#!/bin/bash
am monitor | while read -r line; do
    if [[ $line == *"firelauncher"* ]]
    then
      am start com.newlauncher.launcher
    fi
done

OSX/Linux?如果是Linux,是什么发行版?或者这个bash是在安卓手机中运行的?这个bash是在安卓上运行的,带有busybox,所以它具有安卓的功能。感谢您的帮助。命令:am monitor | grep firelauncher工作得更好,每当显示输出:**Activity start:com.amazon.firelauncher时,我想执行commandOS X/Linux?如果是Linux,是什么发行版?或者这个bash是在安卓手机中运行的?这个bash是在安卓上运行的,带有busybox,所以它具有安卓的功能。感谢您的帮助。命令:am monitor | grep firelauncher工作得更好,无论何时显示输出:*Activity start:com.amazon.firelauncher,我都想执行一条命令我爱您,这确实有效!我会尽快+1你!你应该为自己感到骄傲,这实际上是互联网上的一个大问题,我读了很多人的尝试,只有你成功了。我爱你,这确实有效!我会尽快+1你!你应该为自己感到骄傲,这实际上是互联网上的一个大问题,我读了很多人的尝试,只有你成功了。