मैं कैसे स्वचालित रूप से बैश में आदेश दे सकता हूं?


14

इसमें tcsh, चर है time:

   The time shell variable can be set to execute the time builtin command
   after the completion of any process that takes more than a given number
   of CPU seconds.

मैं इसमें कैसे करूँ bash?

जवाबों:


14

मुझे नहीं लगता कि आप बैश स्रोत को संशोधित किए बिना ठीक उसी प्रभाव को प्राप्त कर सकते हैं। लेकिन आप पास हो सकते हैं, उम्मीद है कि आप के लिए काफी करीब है।

आप दीवार की घड़ी को गैर-दखल देने वाले तरीके से दिखाने के लिए बैश के हैकी प्रीकैमैंड हुक और SECONDSचर को जोड़ सकते हैं । यहां विले लॉरिकारी के कारण एक सरल कार्यान्वयन है । फ़ंक्शन timer_startऔर timer_stopतुरंत कमांड शुरू करने से पहले और अगले प्रॉम्प्ट प्रदर्शित करने से तुरंत पहले निष्पादित किए जाते हैं।

function timer_start {
  timer=${timer:-$SECONDS}
}
function timer_stop {
  timer_show=$(($SECONDS - $timer))
  unset timer
}
trap 'timer_start' DEBUG
PROMPT_COMMAND=timer_stop
PS1='[last: ${timer_show}s][\w]$ '

timeहर आदेश के लिए पूरी जानकारी प्राप्त करने के लिए , डेनिस विलियमसन के कारण यहां एक तरीका है :

bind '"\C-j": "\C-atime {\C-e;}\C-m"'

जब आप कमांड शुरू करने के बजाय Ctrl+ दबाते हैं , तो आपको समय की जानकारी मिल जाएगी। रिबाइंडिंग (यानी + ) की सिफारिश नहीं की गई है क्योंकि संशोधित आदेश कभी-कभी वाक्यविन्यास रूप से गलत होगा।JEnterEnterCtrlM

देखें कि बैश प्रॉम्प्ट में अंतिम कमांड की दीवार का समय कैसे रखा जा सकता है? और स्वचालित रूप से हर निष्पादित कमांड और बैश प्रॉम्प्ट में समय दिखाते हैं? अन्य तरीकों के लिए स्टैक ओवरफ्लो पर (ध्यान दें कि ज्यादातर केवल बीता हुआ वास्तविक समय देते हैं, सीपीयू समय नहीं)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.