স্ক্রিপ্টটি প্রস্থান করার পরিবর্তে কার্যকর করা হয়েছে কিনা তা পরীক্ষা করুন


1

আমি এমন একটি স্ক্রিপ্ট নিয়ে কাজ করছি যা আমি সংশোধন করতে পারি না, এটি প্রস্থান কোড ব্যবহার করে না। (সমস্ত প্রস্থানগুলি কেবল 'প্রস্থান' হয়)

স্ক্রিপ্টটি সংশোধন না করে (বা এটি লিখেছেন এমন নির্বোধের দিকে চিত্কার করে), স্ক্রিপ্টের কিছুটা আগে স্ক্রিপ্টের বাইরে না এসে স্ক্রিপ্টটি "শেষ হয়ে গেছে" কিনা তা পরীক্ষা করার কোনও উপায় আছে?

কেবলমাত্র আমি ভাবতে পারি এটি শেষ হওয়া অবধি সক্রিয় প্রক্রিয়াগুলি ট্র্যাক করা, তবে এটি ত্রুটির কারণে যখন প্রস্থান করে তখন এটিও শেষ হবে।


bash -x scriptnameস্ক্রিপ্ট যা কিছু করে তা আপনাকে দেখাবে। আউটপুটের শেষ কয়েকটি লাইনের দিকে তাকানো আপনার জানা উচিত যেখানে এটি কোথায় বেরিয়েছে তা নির্ধারণ করে।
1024

আকর্ষণীয় সমাধান - ফাইলের জন্য -x আউটপুটগুলির সমস্ত পাইপ করার কোনও উপায় আছে যাতে এটি ব্যবহারকারীর জন্য পর্দা বিশৃঙ্খলা না করে + আমি মৃত্যুর পরে ফাইলটি মুছতে পারি?
ব্রাইডন গিবসন

আপনি যদি পর্দার বিশৃঙ্খলা না চান তবে চালান bash -x scriptname | tail -n5এবং এটি কেবল সর্বশেষ 5 টি লাইন প্রদর্শন করবে।
1024

এটি কেবল স্ক্রিপ্ট আউটপুট পাইপ করে, -x ব্যবহার করে আউটপুট দেয় না। সম্পাদনা: -x স্ট্যাডারকে প্রেরণ করে 2> লগফিল ব্যবহার করে একটি উত্তর পোস্ট করতে চলেছেন
ব্রায়ডন গিবসন

উত্তর:


1

আমি এমন একটি স্ক্রিপ্ট নিয়ে কাজ করছি যা আমি সংশোধন করতে পারি না, এটি প্রস্থান কোড ব্যবহার করে না।

যদি কোনও ত্রুটি থাকে তবে সেই ফাইলের শেষ লাইনে 'প্রস্থান' থাকা উচিত, অন্যথায় স্ক্রিপ্টটি সফলভাবে সম্পাদন শেষ হয়েছে।

এই কোডটি ব্যর্থ হলে কমান্ডটি কোড 1 দিয়ে প্রস্থান করবে এবং যদি এটি সফল হয় তবে কোড 0 করবে:

bash -x scriptname 2>&1 | tail -n1 | grep -vq exit

tail -n1কেবল সর্বশেষ লাইনটি প্রদর্শন করে এবং grep -vq exitসেই লাইনে শব্দটি রয়েছে কিনা তা পরীক্ষা করে exit

এই প্রদর্শনকে কীভাবে দরকারী বার্তাগুলি তৈরি করবেন তার উদাহরণ:

bash -x scriptname 2>&1 | tail -n1 | grep -vq exit && echo Success

বা:

bash -x scriptname 2>&1 | tail -n1 | grep -vq exit || echo Fail
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.