जवाबों:
एक चल रही प्रक्रिया के लिए आप ऐसा कर सकते हैं:
PID=5462
command ps -p "$PID" -o etime
command ps -p "$PID" --no-headers -o etime
एक सामान्य सुविधा के रूप में आप अपने शेल प्रॉम्प्ट को संशोधित कर सकते हैं। यह मेरी बैश प्रॉम्प्ट परिभाषा है:
TERM_RED_START=$'\033[1m\033[31m'
TERM_RED_END=$'\033(B\033[m'
PS1='\nec:$(ec=$?; if [ 0 -eq $ec ];
then printf %-3d $ec;
else echo -n "$TERM_RED_START"; printf %-3d $ec; echo "$TERM_RED_END";
fi) \t \u@\h:\w\nstart cmd:> '
PS2="cont. cmd:> "
आपके लिए प्रासंगिक हिस्सा \t
समय के लिए है।
हालांकि यह सभी समस्याओं का समाधान नहीं करता है। नया प्रॉम्प्ट तब दिखाई देगा जब प्रक्रिया समाप्त हो गई हो, लेकिन पूर्व प्रॉम्प्ट काफी पुराना हो सकता है जब मापी जाने वाली कमांड शुरू की गई थी। तो या तो आप लंबे समय से चल रही कमांड शुरू करने से पहले प्रॉम्प्ट को रिन्यू करना याद रखें या आपको वर्तमान समय को याद रखना होगा जब आप जानना चाहेंगे कि वर्तमान प्रक्रिया में कितना समय लगेगा।
संपूर्ण समाधान के लिए आपको एक ऑडिट सुविधा की आवश्यकता होती है (जो प्रक्रियाओं के प्रारंभ और समाप्ति समय को लॉग करती है)। लेकिन यह डेटा की एक बड़ी मात्रा का कारण हो सकता है अगर इसे शेल तक सीमित नहीं किया जा सकता है।