&& দ্বারা জড়িত কমান্ডগুলির আউটপুট / পুনঃনির্দেশ ক্যাপচার করা


11

আমার কাছে একটি, বি, সি কমান্ডের একটি সিরিজ রয়েছে যা আমি && এর সাথে এক সাথে শৃঙ্খলিত করছি a && b && c

আমি সমস্ত কমান্ডের আউটপুট stdout এবং stderr উভয়ই ধরতে চাই। a && b && c 2>&1 > capture_file কেবল সি কমান্ড থেকে আউটপুট ক্যাপচার করে।

উত্তর:


11
{ a && b && c; } >capture_file 2>&1

পুনঃনির্দেশগুলির ক্রমটি নোট করুন: আপনাকে প্রথমে স্টডআউট পুনর্নির্দেশ করতে হবে।


কেন প্রথম স্টাডআউট?
TLOlczyk

@TLlczyk এর 2>&1অর্থ stdout (1) এর স্ট্যান্ডার (2) এর গন্তব্যের নকল করা, সুতরাং আপনি যদি স্টাডআউট পুনঃনির্দেশটি আগেই সেটআপ না করেন তবে এটি অকেজো হবে।
ইয়াগ্যাসি

2
@TLOlczyk এটি প্রথমে stdout হতে হবে না - আপনি প্রথমে স্টাডার করতে পারেন : 2>capture_file >&2(তবে করবেন না, কারণ এটি মূর্খতা নয়)। গুরুত্বপূর্ণ বিষয়টি হ'ল আপনি সেই প্রবাহটিকে অন্যটিতে নকল করার আগে ফাইলগুলির জন্য তাদের একজনকে পুনর্নির্দেশ করুন।
টবি স্পিড

1

কমান্ড গোষ্ঠীকরণ ব্যবহার করা ছাড়াও {}আপনি একটি সাবশেলে কমান্ডগুলি চালাতে এবং আউটপুট (এবং / অথবা ত্রুটি) একবারে ক্যাপচার করতে পারেন:

( a && b && c ) >file.txt 2>&1

উদাহরণ:

$ ( echo foo && echo bar && echo baz && echos foo ) >check 2>&1

$ cat check
foo
bar
baz
No command 'echos' found, did you mean:
 Command 'echo' from package 'coreutils' (main)
echos: command not found
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.