2017-03-08 49 views
0

所以我试图运行一个脚本,将捕捉命令的输出:击:一定量的时间运行命令,并获取其输出

echo 'password' | sudo -S strace -p14750 -s9999 -e write 

约5秒钟,然后存储输出变成一个变量。 我该怎么做?

完整的脚本:

appium_pid_output=$(echo 'password' | sudo -S strace -p$appium_device_pid -s9999 -e write) 
    echo 'captured output of node '$appium_pid_output 

    if [[ $appium_pid_output == *POST* ]]; then 
     echo "device [ " + $device + " ] is currently in use" 
     return 1 
    fi 
+0

会很高兴有一些反馈意见。我的答案有问题吗? – Socowi

回答

0

使用timeout命令。

var="$(timeout 5 whateverProducesTheOutput)" 

缺点是超时不适用于复杂的命令。最简单的方法是编写一个函数并使用超时执行函数(请参阅this answer)。

foo() { 
    whateverProducesTheOutput 
} 
export -f foo 
var="$(timeout 5 bash -c foo)" 
相关问题