`টাইম` কমান্ড কেন কোনও বিকল্পের সাথে কাজ করে না?


60

সময়ের আউটপুটটিকে বিন্যাস করতে বিকল্পের timeসাথে কমান্ডটি ব্যবহার করার চেষ্টা করেছি -f, তবে আমি নিম্নলিখিত ত্রুটিটি পেয়েছি:

-f: command not found

তারপর আমি অন্যান্য অপশন ব্যবহার করার চেষ্টা -a, -oইত্যাদি এবং আমি একই ভুল হচ্ছে। এমনকি time --versionকাজ করে না ( --version: command not found)।

আমাকে লোকটি পড়তে বলবেন না কারণ আমি ইতিমধ্যে এটি বহুবার করেছি ... এই সমস্ত বিকল্প সেখানে নির্দিষ্ট করা আছে। তাহলে, সমস্যা কোথায় হতে পারে?


না sudo apt-get install --reinstall timeসাহায্য করে?
जॉবিন

9
বা এর timeসাথে অভ্যন্তরীণ শেলটি হতে পারে/usr/bin/time
রোমানো

উত্তর:


90

ঠিক আছে, আপনি যদি এটি পছন্দ না করেন তবে আমি আপনাকে আরও মনোযোগ দিয়ে আবার পড়তে দেব man timeEXAMPLESবিভাগের শেষে আপনি পাবেন:

  Users of the bash shell need to use an explicit path in order to run
  the external time command and not the shell builtin variant.  On system
  where time is installed in /usr/bin, the first example would become
       /usr/bin/time wc /etc/hosts

সুতরাং, আমি ধরে নিচ্ছি যে আপনি বাশ শেল ব্যবহার করেন যা timeশেল কীওয়ার্ড হিসাবে সরবরাহিত এর অভ্যন্তরীণ সংস্করণ ব্যবহার করে । আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে এটি পরীক্ষা করতে পারেন:

type time

এবং আউটপুট সম্ভবত হবে:

time is a shell keyword

এই যদি হয় তাহলে, তারপর স্পষ্ট, ব্যবহার করা বাস্তব time কমান্ড, আপনাকে অবশ্যই তার স্পষ্ট পথ ব্যবহার করার জন্য: /usr/bin/time

আরও, যদি আপনি শেল কীওয়ার্ডটি আর ব্যবহার করতে না চান তবে আপনি নিম্নলিখিত হিসাবে একটি স্থায়ী উপন্যাস তৈরিtime করতে পারেন :

alias time='/usr/bin/time'

এটি শেল কীওয়ার্ডটি ওভাররাইট করবে timeকারণ আদেশটি:

type time

এখন নিম্নলিখিত আউটপুট দেবে:

time is aliased to `/usr/bin/time'

5
শেল নির্মিত কমান্ডগুলির জন্য: {তথ্য সময়} এবং {টাইপ সময়}} বাইনারি কমান্ডগুলির জন্য: {কোন সময়} এবং {মানুষের সময়}
মাইকেল মার্টিনেজ

@ মিশেল info timeবাইনারি সম্পর্কে help timeবিল্টিন সম্পর্কে।
wjandrea

হ্যাঁ, দুঃখিত আমি "সহায়তা" ভাবছিলাম তবে "তথ্য" বেরিয়েছে
মাইকেল মার্টিনেজ

21

যেহেতু অন্যান্য উত্তরগুলি ব্যাখ্যা করে, timeশেল কীওয়ার্ড, তাই আপনার জন্য একমাত্র বিকল্পটি হ'ল -p:

terdon@oregano ~ $ help time
time: time [-p] pipeline
    Report time consumed by pipeline's execution.

Execute PIPELINE and print a summary of the real time, user CPU time,
and system CPU time spent executing PIPELINE when it terminates.

Options:
  -p    print the timing summary in the portable Posix format

সুতরাং, আপনি চালানোর প্রয়োজন timeযে আছে /usr/bin। এটি করার কয়েকটি উপায় এখানে রয়েছে:

  • ব্যবহার করুন timeপরিবর্তে এক্সিকিউটেবল:

    /usr/bin/time -f %Uuser ls >/dev/null
  • ব্যবহার করুন \যা আপনার শেলটিকে উপকরণ এবং কীওয়ার্ডগুলি উপেক্ষা করে এবং পরিবর্তে আপনার $PATHএকটি ম্যাচ এক্সিকিউটেবলের জন্য অনুসন্ধান করে :

    \time -f %Uuser ls >/dev/null 
  • commandঅনুরূপ প্রভাব আছে যা বিল্টিন ব্যবহার করুন :

    command time -f %Uuser ls >/dev/null
  • একটি আলাদা শেল ব্যবহার করুন, এমন কোনও কীওয়ার্ড নেই one উদাহরণস্বরূপ sh(যা আসলে dashউবুন্টুতে রয়েছে):

    sh -c "time -f %Uuser ls >/dev/null"
  • ব্যবহার করুন which, যা আপনার মাধ্যমে অনুসন্ধান করবে $PATH(ঠিক আছে, এটি নির্বোধ):

    $(which time) -f %Uuser ls >/dev/null

বিপরীতে করার কোনও উপায় আছে - timeনিয়মিত অন্তর্নির্মিত প্রতিলিপি /usr/bin/time? অর্থাত ড্যাশে ব্যাশ স্ক্রিপ্ট অনুবাদ করা।
ড্যান এম

@DanM। আমি বুঝতে পারছি না। আপনি যদি বিল্টিন চান তবে timeচালান time। আপনি যদি স্ট্যান্ডেলোন এক্সিকিউটেবল চান, চালান /usr/bin/time
terdon

timeআমি যতটা অবগত থাকি উবুন্টুর ডিফল্ট শেলটিতে কোনও অন্তর্নির্মিত নেই । আমি একই আচরণের সাথে অন্তর্নির্মিত স্বতন্ত্র মধ্যে ব্যবহার করে স্ক্রিপ্ট অনুবাদ করতে চাই।
ড্যান এম

@DanM। তাহলে শুধু ব্যবহার করুন time। এটি যে কোনও একটির কাছে কল হবে। এটি ব্যাশের জন্য অন্তর্নির্মিত এবং ড্যাশের জন্য স্বতন্ত্র will আপনি যদি ব্যবহার করেন /usr/bin/timeতবে তা সর্বদা ব্যাশ এবং ড্যাশ উভয় ক্ষেত্রেই স্বতন্ত্র কল করবে। তবে মনে হচ্ছে আপনার প্রয়োজনীয় আচরণটি ব্যাখ্যা করে আপনার সম্ভবত একটি নতুন প্রশ্ন করা উচিত। আপনি যদি করেন তবে আমাকে জানান এবং আমি চেষ্টা করব এবং সহায়তা করব।
terdon

হ্যাঁ, তবে অন্তর্নির্মিত এবং স্বতন্ত্র অবস্থায় মারাত্মকভাবে আলাদা সিনট্যাক্স / শব্দার্থক শব্দ রয়েছে। যাইহোক ধন্যবাদ. আমি কীভাবে এটি মোকাবিলা করব তা যদি আমি বুঝতে না পারি তবে আমি একটি নতুন প্রশ্ন করব ask
ড্যান এম

17

bashএবং zshশাঁস তাদের অভ্যন্তরীণ আছে timeকমান্ড। আপনি ব্যবহার করতে হবে

/usr/bin/time -f ...

বিটিডাব্লু, আমি আবিষ্কার করেছি যে ব্যবহার করে (থেকে zsh):

~% which  time
time: shell reserved word
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.