Я пытаюсь прочитать счетчики производительности и получить IPC. Мне нужно использовать IPC для управления несколькими параметрами машины. Я использую сценарий оболочки, чтобы сделать то же самое. Пожалуйста, смотрите код ниже:Передача IPC (Инструкции/Циклы) непрерывно к другой функции или переменной
while true
do
retval=./perf periodic -e instructions -e cycles -s 50 -d -m td &
some_pid=$!
kill some_pid
if ["$retval" -gt "0.5"]
then
***something***
fi
sleep 1
done
я получаю следующее сообщение об ошибке:
Algorithm.sh[27]: kill: some_pid: arguments must be jobs or process IDs
Algorithm.sh[27]: periodic: not found
Algorithm.sh[27]: [: missing ]
Algorithm.sh[27]: kill: some_pid: arguments must be jobs or process IDs
Algorithm.sh[27]: [: missing ]
Algorithm.sh[27]: periodic: not found
Algorithm.sh[27]: kill: some_pid: arguments must be jobs or process IDs
Algorithm.sh[27]: [: missing ]
Может кто-нибудь дать мне несколько советов о том, как получить/вернуть значение из инструкции перфорации. Я пробовал использовать функцию и возвращал значение, но также не удалось.
--------- ОБНОВЛЕНО ----------
Теперь я бегу следующий, и одна из проблем был решен, а один остается.
./perf periodic -e instructions -e cycles -s 50 -d -m td > result.txt &
И другая является
while true
do
retval=$(tail -n 1 result.txt)
echo $retval
if ["$retval" -gt "0.5"]
then
echo "Hello mate"
fi
sleep 1
done
эхо дает значение, но затем, если оператор не получает казнены. Он дает следующие сведения:
Algorithm.sh[30]: [: missing ]
0.302430
Algorithm.sh[30]: [0.302430: not found
0.472716
Algorithm.sh[30]: [0.472716: not found
0.475687
Algorithm.sh[30]: [0.475687: not found
Я искал синтаксис условия if и не смог обнаружить ошибку. Пожалуйста помоги.
Я обновил вопрос с внесенными вами изменениями. И теперь у меня проблема в выражении «if». – shingaridavesh