我编写了一个 shell 脚本(名为 profile.sh)来从 Android MPSoC 获取温度值。另外,我还找到了一个 shell 脚本,用于获取 Android 系统上应用程序的 FPS,如下所示:https://github.com/NasdaqGodzilla/GetFPS
为了获得 FPS,我需要执行 shell 脚本 (get_fps.sh),如 https://github.com/NasdaqGodzilla/GetFPS使用以下命令:
源 get_fps.sh
但是,我想通过调用其他 shell 脚本(profile.sh)中的 get_fps.sh 来获取 FPS 的输出,然后将输出存储在变量中,以便我可以将其写入 csv 文件。
我的shell脚本(profile.sh)如下:
#!/system/bin/sh
echo "power and temperature reading started...."
ini_signal="echo 1 > /data/local/tmp/signal.txt"
exec_signal=$(eval $ini_signal)
signal="cat /data/local/tmp/signal.txt"
exec_signal=$(eval $signal)
file_name=profile.csv
current_time=$(date "+%T")
new_fileName=$current_time.$file_name
while [[ $exec_signal != "0" ]]
do
TEMP_0="cat /sys/class/thermal/thermal_zone0/temp"
TEMP_1="cat /sys/class/thermal/thermal_zone1/temp"
TEMP_2="cat /sys/class/thermal/thermal_zone2/temp"
TEMP0=$((OUT_TEMP0 / 100))
TEMP1=$((OUT_TEMP1 / 100))
TEMP2=$((OUT_TEMP2 / 100))
FPS=[GET THE OUTPUT OF source get_fps.sh]
echo $TEMP0,$TEMP1,$TEMP2,$FPS >> /data/local/tmp/$new_fileName
signal="cat /data/local/tmp/signal.txt"
exec_signal=$(eval $signal)
sleep 0.2
done
答案1
get_fps.sh
因此,要从这里运行脚本,profile.sh
代码如下:
#!/system/bin/sh
echo "power and temperature reading started...."
ini_signal="echo 1 > /data/local/tmp/signal.txt"
exec_signal=$(eval $ini_signal)
signal="cat /data/local/tmp/signal.txt"
exec_signal=$(eval $signal)
file_name=profile.csv
current_time=$(date "+%T")
new_fileName=$current_time.$file_name
while [[ $exec_signal != "0" ]]
do
TEMP_0="cat /sys/class/thermal/thermal_zone0/temp"
TEMP_1="cat /sys/class/thermal/thermal_zone1/temp"
TEMP_2="cat /sys/class/thermal/thermal_zone2/temp"
TEMP0=$((OUT_TEMP0 / 100))
TEMP1=$((OUT_TEMP1 / 100))
TEMP2=$((OUT_TEMP2 / 100))
FPS=$(source get_fps.sh)
echo $TEMP0,$TEMP1,$TEMP2,$FPS >> /data/local/tmp/$new_fileName
signal="cat /data/local/tmp/signal.txt"
exec_signal=$(eval $signal)
sleep 0.2
done
基本上,我正在运行get_fps.sh
并将输出值存储在名为 FPS 的变量中,如下所示:
FPS=$(source get_fps.sh)