eval
pode ajudar neste caso ...
~ $ $(echo expr 1 \* 2)
+ echo expr 1 \* 2
+ expr 1 \* 2
expr: syntax error
~ $ eval $(echo expr 1 \* 2)
+ echo expr 1 \* 2
+ eval expr 1 \* 2
+ expr 1 * 2
2
Mas talvez seja melhor procurar /proc/$pid/stat
no Linux.
pid=1155
hz=$(getconf CLK_TCK)
uptime=$(awk '{print $1}' < /proc/uptime)
starttime=$(awk '{print $22}' < /proc/$pid/stat)
echo $(( ${uptime%.*} - $starttime / $hz ))
Se /usr/bin/getconf
estiver indisponível, você precisará encontrar o valor CLK_TCK
(ou USER_HZ
) do seu sistema. Eu acho que você pode assumir isso como 100 na maioria dos casos.