কমান্ডের জন্য টি


15

teeপাইপযুক্ত স্ট্যান্ডার্ড ইনপুটটিকে স্ট্যান্ডার্ড আউটপুট এবং ফাইলে পুনর্নির্দেশ করতে পারে ।

echo Hello, World! | tee greeting.txt

উপরের কমান্ডটি টার্মিনাল স্ক্রিনে অভিবাদন প্রদর্শন করবে এবং greeting.txtফাইলের বিষয়বস্তুগুলিতে এটি সংরক্ষণ করবে , নামটি না থাকলে ফাইল তৈরি করবে।

ওভাররাইটিংয়ের পরিবর্তে বিদ্যমান ফাইলে সংযোজন করার -aজন্য এছাড়াও রয়েছে tee


পাইপড ইনপুটটি ফাইলের পরিবর্তে কমান্ড এবং স্ট্যান্ডার্ড আউটপুটটিতে পুনর্নির্দেশ করার কোনও সুবিধাজনক উপায় নেই ?

আমি bukuবুকমার্কের সূচক সংখ্যা দ্বারা নির্দিষ্ট করে প্রাথমিক নির্বাচনের অনুলিপি করার জন্য একটি মোড়ক স্ক্রিপ্ট তৈরি করার চেষ্টা করছি ।

# bukuc:
#!/bin/sh
url=$(buku -f 1 -p $1 | cut -f 2) # NUMBER : URL
echo $url # DISPLAY
echo $url | xsel # PRIMARY SELECTION

এখানে আমি echo দুটি বার ব্যবহার করি , প্রথমে টার্মিনালটিতে প্রদর্শিত হয় এবং তারপরে প্রাথমিক নির্বাচনের (ক্লিপবোর্ডে) সঞ্চয় করি।

আমি echo $url | teeC xselপরবর্তী কমান্ডে (শৃঙ্খলাবদ্ধ কমান্ডগুলি) পাঠানোর আগে আউটপুট প্রদর্শন করার জন্য একটি শর্টকাট বা শর্টকাট কল্পনা করেছি , যা আমাকে নিম্নলিখিত লাইনে একটি ভেরিয়েবলের ফলাফল সংরক্ষণ না করে পুরো কমান্ডটিকে এক লাইনে শৃঙ্খলিত করতে দেয় :

buku -f 1 -p $1 | cut -f 2 | teeC xsel    

আমি এটি নীচে urlviewদেখতে, নির্বাচন করতে এবং খোলার জন্য এটি ব্যবহার করতে পারি $BROWSER:

bukuc 10-20 | urlview

3
চেষ্টা করুন tee /dev/ttyবা tty0(ঠিক মনে
পড়বে

2
info teeএকটি প্রোগ্রামে প্রক্রিয়া বিকল্প, এবং পাইপ টি এর আউটপুট উল্লেখ ...
Xen2050

উত্তর:


19

এটি শেলগুলির মধ্যে সোজা যা প্রসেসের বিকল্পটিকে সমর্থন করে , যেমন বাশ

$ echo foo | tee >(xsel)
foo
$ xsel -o
foo

অন্যথায়, আপনি একটি ফিফো ব্যবহার করতে পারেন (যদিও এতে সুবিধার অভাব রয়েছে)

$ mkfifo _myfifo
$ xsel < _myfifo &
$ echo bar | tee _myfifo
bar
$ xsel -o
bar
[1] + Done                       xsel 0<_myfifo
$ 

ধন্যবাদ! দুটি জিনিস আমি লক্ষ্য করেছি: 1. sh(বোর্ন শেল) সেই বৈশিষ্ট্যটি সমর্থন করে না; ২. >()প্রক্রিয়া প্রতিস্থাপনের জন্য তীরটি একক অপারেটরের অংশ হিসাবে আটকাতে হবে ।

11

"টি ফর কম্যান্ডস" এর সরাসরি অ্যানালগটি peeহ'ল মুর্টিলস থেকে প্রাপ্ত কমান্ড ( teeতবে পাইপ সহ)। এর আর্গুমেন্টগুলি চলার জন্য কমান্ড হিসাবে ব্যবহৃত হয়, পাথ হিসাবে নয় এবং ফাইলটি লিখিত না হয়ে তারা ইনপুটটি পাইপ পায়। সমস্ত কমান্ডকে স্ট্যান্ডার্ড ইনপুট দেওয়া হবে যা আপনি peeনিজের হিসাবে পাইপ করেছেন ।

ব্যবহার করে pee, আপনি যে ফলাফলটি চেয়েছিলেন তা উভয় চালনার জন্য xselএবং catইনপুট দিয়ে বলতে পারেন ।

echo foo | pee xsel cat

catআউটপুটটি করতে সেখানে প্রায় একটি অতিরিক্ত প্রক্রিয়া ভেসে উঠছে, যা আপনার ব্যবহারের ক্ষেত্রে আসলেই সমস্যা নয় তবে এটি অন্যান্য সময়ে কম আদর্শ হতে পারে। প্রক্রিয়া প্রতিস্থাপনের বিপরীতে এটি কোনও শেলের সাথে কাজ করে, তবে অবশ্যই এটির জন্য অতিরিক্ত (সম্ভবত কম-সাধারণ) সরঞ্জাম ইনস্টল করা প্রয়োজন।

আপনি তাদেরকে মূল্য উদ্ধৃতি দ্বারা আরো জটিল কমান্ড দিতে পারেন: pee "xsel --display :1" cat। এগুলি চালানো হচ্ছে sh, সুতরাং আপনাকে শেল মেটাচ্যাকার্টার সম্পর্কে সতর্কতা অবলম্বন করতে হবে না।


4
খুব দুর্দান্ত - এটি সম্পর্কে জানতেন না
স্টিলড্রাইভার

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