ওয়াচ রান 2 কমান্ড ব্যবহার করে


42

একই টার্মিনাল উইন্ডোতে আমাকে দুটি কমান্ড দেখতে হবে। আমি এরকম কিছু বোঝাতে চাইছি

watch du -h filename.txt && df -h

তবে এটি শুধুমাত্র একটি আউটপুট দেখাচ্ছে।

সুতরাং আমি যা ভাবছি তা একই উইন্ডোতে একাধিক কমান্ড চালানোর জন্য ঘড়ি ব্যবহার করা সম্ভব নয়।

যদি কোনও উপায় থাকে তবে দয়া করে আমাকে জানান।

ধন্যবাদ.

উত্তর:


67

আপনি আদেশগুলি উদ্ধৃত করতে পারেন:

watch "du -h filename.txt && df -h"

এবং তাদের একসাথে মৃত্যুদন্ড কার্যকর করা হবে।


ধন্যবাদ অলি আসলে অফিসের পিসি তাই পরীক্ষা-নিরীক্ষা করার সাহস করে না। তাই নিশ্চিত সমাধানের জন্য এখানে পোস্ট। ধন্যবাদ.
rdd

আরে তুমি কি নিশ্চিত তারা কাজ করবে? কারণ মৃত্যুদন্ড কার্যকর করার সময় আমি কিছু অনুমতি পেয়ে যাচ্ছি ত্রুটিটি অস্বীকার করা হয়েছে "df: us / usr / raja / hostctrl / new ': অনুমতি অস্বীকার করা হয়েছে"
rdd

এটি একটি পৃথক বিষয় বলে মনে হচ্ছে। আপনি যদি দেখতে পান যে এটি ইস্যু করা না থাকে তা ঘড়িতে জড়িয়ে না দেওয়া without
অলি

3
এই কাজ করে সচেতন হন কারণ এই উদাহরণ কমান্ডগুলি সত্য দিয়ে ফিরে আসে । প্রথম কমান্ডটি যদি মিথ্যা প্রত্যাবর্তন করে তবে দ্বিতীয় কমান্ড কার্যকর করা হবে না (কারণ boolean evaluation shortcut)
karatedog

3
FTR, আমার কমান্ডটি ব্যবহার করে &&কারণ ওপেন ব্যবহার করে &&। আদেশের সংমিশ্রণ এবং তাদের সংযোগের উত্তরটি ঘটনাক্রমে।
অলি

19

আপনি যদি উভয় কমান্ড কার্যকর করে তা নিশ্চিত করতে চান তবে তার মধ্যে একটির ;পরিবর্তে তার আলাদা করা &&

watch 'du -h filename.txt; df -h'

&&&&প্রথম কমান্ড সফলভাবে সম্পাদিত হলে (প্রস্থান স্থিতি 0) কেবলমাত্র দ্বিতীয় কমান্ড (দ্বিতীয় অপারেন্ড, ডানদিকে ) চালানোর অনুমতি দেয় । যদি এটি উদ্দেশ্যমূলক আচরণ হয় তবে সাথে যান &&


1
এই সেমিকোলন ফর্মটি মূল প্রশ্নের উত্তর হিসাবে আমার কাছে সেরা বলে মনে হচ্ছে। আপনি যদি "দুটি কমান্ড চালনা" করতে চান তবে সেমিকোলন ব্যবহার করুন! আপনি যদি "একটি কমান্ড চালাতে চান, তবে অন্য কোনও" ব্যবহার করুন && ব্যবহার করতে পারেন
জেরেমিডগ্লাস

3

সম্পূর্ণতার জন্য ...

 watch 'du -h filename.txt || true && df -h'

'|| সত্য 'অংশটি প্রথম কমান্ডকে কোনও কারণে ব্যর্থ হয়েও সত্য হিসাবে মূল্যায়ন করতে বাধ্য করে। এটি প্রথমে আউটপুট নির্ধারণ না করেই && এর পরের কমান্ডকে মঞ্জুরি দেবে। এটি সম্ভবত এটি সম্ভব হতে দেখিয়ে দৃশ্যের জন্য অপ্রয়োজনীয়।


-1

এক সাথে একাধিক কমান্ড চালানোর জন্য, &কমান্ডগুলির মধ্যে একক অপারেটর ব্যবহার করুন । ভালো লেগেছে:

dothis & dothat

যে কোনও বিভ্রান্তি দূর করতে, বিভিন্ন অপারেটর কীভাবে কাজ করে তা এখানে:

c1 & c2  # Run both commands parallelly
c1 ; c2  # Run both commands one by one
c1 && c2 # Run c2 only if c1 exits successfully
c1 || c2 # Run c2 only if c1 fails

সি 1 এবং সি 2 উভয় কমান্ড সমান্তরালভাবে চলবে না, যদি সি 1 সফলভাবে চালিত হয় তবে কেবল সি 2 চলবে।
ʒɑ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.