কিছু আদেশ যা আমি প্রদর্শন রঙ ব্যবহার করি, কিন্তু যখন আমি তাদের ঘড়ির সাথে ব্যবহার করি তখন রঙগুলি অদৃশ্য হয়ে যায়:
watch -n 1 node file.js
কোনওভাবে আবার রঙগুলি রাখা কি সম্ভব?
কিছু আদেশ যা আমি প্রদর্শন রঙ ব্যবহার করি, কিন্তু যখন আমি তাদের ঘড়ির সাথে ব্যবহার করি তখন রঙগুলি অদৃশ্য হয়ে যায়:
watch -n 1 node file.js
কোনওভাবে আবার রঙগুলি রাখা কি সম্ভব?
উত্তর:
watch
রঙের এখনকার কয়েকটি নতুন সংস্করণ সমর্থন করে।
উদাহরণস্বরূপ watch --color ls -ahl --color
।
watch
সঙ্গে git diff
। FWIW, আপনি মধ্যে পাস করতে হবে কাজ পেতে --color=always
থেকে git diff
(যেমন watch --color git diff --color=always
।
ব্যবহার করবেন না watch
... আপনি যখন ঘড়ি প্রোগ্রামগুলি ব্যবহার করেন তখন সনাক্ত করতে পারেন যে তারা কোনও টার্মিনালে লিখছেন না এবং তারপরে রঙটি ফালাটি কাটাতে পারেন। কন্ট্রোল কোডগুলি রাখতে আপনাকে অবশ্যই নির্দিষ্ট প্রোগ্রামের পতাকা ব্যবহার করতে হবে।
আপনি যদি পতাকাগুলি না জানেন বা নাও থাকেন তবে আপনি কোনও দরিদ্র লোককে ঘড়িটি বানাতে পারেন:
while sleep <time>; do clear; <command>; done
এতে কিছুটা ঝাঁকুনি থাকবে (ঘড়ির কাজ "ডাবল বাফার") তবে কিছু স্টাফের জন্য এটি যথেষ্ট কার্যকর।
আপনি ডাবল বাফার দরিদ্র লোকটির ঘড়ি ব্যবহার করে প্রলুব্ধ হতে পারেন
while sleep <time>; do <command> > /tmp/file; clear; cat /tmp/file; done
তবে তারপরে আপনি আবার "আমি কোনও টার্মিনালে লিখছি না" বৈশিষ্ট্যটি হিট করবেন।
while sleep <time>; do clear; <command> | tee /tmp/file; done
পরিবর্তে >
এবং ব্যবহার করতে পারেন cat
?
watch
এবং ঝিকিমিকি থেকে কমান্ড বাধা দেয় না
watch
while sleep <time> ; do x="$( <command> 2>&1 )" ; clear ; echo "$x" ; done
ব্যাশে : - এটি স্ক্রিনটি সাফ করার জন্য এবং আউটপুট প্রদর্শনের জন্য কেবল শেল বিল্টিন ব্যবহার করে, তাই স্বল্পতম ঝাঁকুনির বিকল্প being
আপনি watch
শেল স্ক্রিপ্টের কয়েকটি লাইনে মৌলিক, নন-ফ্রিল অপারেশনটিকে নকল করতে পারেন ।
$ cat cheapwatch
#!/bin/sh
# Not quite your Rolex
while true ; do
clear
printf "[%s] Output of %s:\n" "$(date)" "$*"
# "$@" <- we don't want to do it this way, just this:
${SHELL-/bin/sh} -c "$*"
sleep 1 # genuine Quartz movement
done
$ ./cheapwatch ls --color # no problem
অবশেষে, খুব চালাক কেউ tr
এই স্ক্রিপ্টের একটি কমান্ড হ্যাক করবে যা নিয়ন্ত্রণের অক্ষরগুলি বাদ দেয় এবং তারপরে ব্যবহারকারীকে --color
সেই যুক্তিটি অক্ষম করতে ব্যবহার করতে বাধ্য করে । আপাতত, এই প্রয়োগের নিখুঁত নিখুঁত রঙ-খাওয়ার দানবকে দূরে রাখছে।
আপনি যদি একটি অবস্থায় হন, তাহলে যেখানে watch
নেই --color
বিকল্প এবং আপনি কারনের জন্য প্যাকেজ আপগ্রেড করতে পারছি না, হয়তো আপনি এই নিক্ষেপ করতে পারেন।
হ্যাঁ
ঘড়ি রঙ আউটপুট সঙ্গে কাজ করে। এটি প্রোপস প্যাকেজের অংশ (কমপক্ষে ডেবিয়ানে) এখানে আপনার প্রশ্নের জন্য বাগ্রেপোর্ট http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=129334 যেখানে তারা উত্তর দেয়, আপনাকে প্রোম্পস আপডেট করা উচিত প্যাকেজ
যেমন উবুন্টু ১১.০৪ সহ এই প্যাকেজটি http://packages.debian.org/wheezy/procps এ কাজ করে
TL; ড
আপডেটগুলি
অন্যান্য উত্তরগুলি এই সমস্যাটি সমাধান করার সময়, এটি সম্পাদন করার সহজতম উপায় হল unbuffer
সরঞ্জামটি ব্যবহার করা । এটি সহজভাবে ব্যবহার করতে:
$ watch --color 'unbuffer <your-program>'
এই পদ্ধতিতে আপনার প্রোগ্রামের পতাকাগুলি সক্ষম করার জন্য নিয়ন্ত্রণ সিকোয়েন্সের জন্য আপনাকে শিকার করতে হবে না। সতর্কবাণীটি হ'ল আপনার ঘড়ির সংস্করণটি --color
পতাকাটিকে সমর্থন করবে ।
আপনি ডেবিয়ান বা উবুন্টু ব্যবহার করে আনবুফার ইনস্টল করতে পারেন sudo apt-get install expect
।
'unbuffer <command>'
- নির্দিষ্ট কোন আদেশ না দিয়ে ব্যবহার করার ফলে এই প্রশ্নের উত্তর কীভাবে পাওয়া যায়?
<command>
রঙের সাথে চলতে চান এমন নির্দিষ্ট প্রোগ্রামটি প্রতিস্থাপনে আপনার কি সহায়তা দরকার ?
ঘড়ি ম্যানুয়াল থেকে:
মুদ্রণবিহীন অক্ষরগুলি প্রোগ্রাম আউটপুট থেকে ছিনিয়ে নেওয়া হয়। আপনি যদি কমান্ড পাইপলাইন দেখতে চান তবে "ক্যাট-ভি" ব্যবহার করুন।
যদিও, আমি এটি কীভাবে ব্যবহার করব তা নিশ্চিত নই।
watch -c "ls --color|cat -v"
শো ^[[0m^[[01;34mAgent^[[0m
।
watch --color ls --color=always .