如何在 shell 脚本中执行“source”命令,然后将 source 的输出存储在 shell 脚本内的变量中?

如何在 shell 脚本中执行“source”命令,然后将 source 的输出存储在 shell 脚本内的变量中?

我编写了一个 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)

相关内容