স্ক্রিপ্টের ভিতরে আউটপুট কীভাবে পাবেন?


33

আমার একটি screenদৌড়াদৌড়ি রয়েছে এবং আমার ভিতরে কিছু কোড চালানো দরকার screenএবং ফলাফলটি আমার স্ক্রিপ্টে পৌঁছে দিতে হবে।

প্রথম অংশটি বেশ সহজ, আমি ঠিক screen -S session_name -X eval 'stuff "$cmd"\015'
(আমি একটি স্ক্রিপ্টে পাওয়া একটি লাইন আমি সংশোধন করেছি )

দ্বিতীয় অংশ, আউটপুট আউট, আরও জটিল। আকারটি যাইহোক আমি কীভাবে পুরো আউটপুট পেতে পারি?



ধন্যবাদ :) দ্বিতীয় লিঙ্কটি ব্যাখ্যা করা হয়েছিল কেন প্রথম কমান্ডটি থাকতে হবে stuff, যা বুঝতে আমার সমস্যা হয়েছিল।
1ace

উত্তর:


29

আপনি বিকল্প screenদিয়ে শুরু করতে পারেন -L। এটি স্ক্রিনের screenlog.nফলে বর্তমান ওয়ার্কিং ডিরেক্টরিতে একটি ফাইল তৈরি করবে (n অংশটি সংখ্যাসূচক, একটি শূন্য দিয়ে শুরু হবে)।

আপনার ক্ষেত্রে এটির মতো দেখতে হবে: screen -S session_name -L -X eval 'stuff "$cmd"\015'

যতক্ষণ না পরে আপনি পরিষ্কার করার কথা মনে রাখবেন, এটি আপনার পরে যা আছে তার সাথে এটি মিলবে।

লগের শেষ লাইনের জন্য, এটি সহজেই পাওয়া যায় tail -1 screenlog.0, বা আপনার ইচ্ছামত পুরো লগটি পার্স করা যায়।


যদিও একটি জিনিস: screenআমি যে কমান্ডটি দিয়েছিলাম তা হ'ল কমান্ডটি প্রেরণ করা the শুরু করার জন্য screen, আমি ব্যবহার করেছি screen -dmS name program;-)
1ace

22

ভবিষ্যতে সহায়ক হতে পারে এমন আরও একটি বিষয়: আপনি যদি স্ক্রিন সেশনে থাকেন তবে আপনি ইন্টারেক্টিভভাবে লগ ফাইলটি তৈরি করার জন্য বলতে পারেন। আপনি লগ ফাইলে যেই উইন্ডোতে রয়েছেন তা ডাম্পিং শুরু করতে স্ক্রিনকে জিজ্ঞাসা করতে ctrl- - a H(ক্যাপিটাল এইচ এর পরে কন্ট্রোল-এ) টিপুন Press


5
এটি কোনও নতুন সংস্করণের কারণে কিনা তা জানেন না তবে আমার man screenবক্তব্য, আমাকে সিএইচ টাইপ করতে হবে, কেবল এইচ। স্যাডের জন্য নিয়ন্ত্রণ ছাড়াই, এটি পূর্ববর্তী লগটি ক্যাপচার করে না।
ম্যাথমার্বন

2
তুমি ঠিক বলছো! এটি লগ ফাইল উত্পন্ন করার জন্য সিএ এইচ। দয়া করে নোট করুন যে এটি মূলধন এইচ (লোয়ারকেস এইচ বর্তমান পর্দার একটি হার্ডকপি তৈরি করে)।
রিকুমালী

3
দয়া করে সিএ এইচ-র উত্তর আপডেট করুন uture ভবিষ্যতের সন্ধানকারীরা বিভ্রান্ত হতে পারে এবং সঠিক উত্তরটি মিস করতে পারে।
gc5

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