所以我试图运行一个捕获命令输出的脚本:
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 :(得分:0)
使用timeout
命令。
var="$(timeout 5 whateverProducesTheOutput)"
缺点是超时对复杂命令不起作用。最简单的方法是编写一个函数并在超时时执行该函数(参见this answer)。
foo() {
whateverProducesTheOutput
}
export -f foo
var="$(timeout 5 bash -c foo)"