বাশ: একটি ভাল প্রস্থান স্থিতি দিয়ে একটি নির্বাহী চালান Run


32

আমি লিনাক্সে এক্সিকিউটেবল চালাতে চাই এবং নির্ধারিত স্থিতি যে তা ফিরে আসুক না কেন, আমি একটি ভাল প্রস্থান স্থিতি ফিরিয়ে দিতে চাই। (অর্থাত্ কোনও ত্রুটি নেই))

(এটি কারণ আমি ব্যবহার করছি sh -exএবং আমি চাই একটি (নির্দিষ্ট) কমান্ড ব্যর্থ হলেও স্ক্রিপ্টটি চলতে থাকবে))

উত্তর:


47

একবার চেষ্টা করে দেখুন:

command || true

থেকে man bash:

শেলটি প্রস্থান করে না যদি কমান্ডটি ব্যর্থ হয় কমান্ড তালিকার সাথে সাথে কিছুক্ষণ পরে বা কীওয়ার্ড অবধি ব্যর্থ হয় তবে পরীক্ষার অংশ যদি নীচের অংশে বা এলিফ সংরক্ষিত শব্দের সাথে থাকে, && বা except তালিকার বাইরে চালানো কোনও কমান্ডের অংশ ব্যতীত চূড়ান্ত && বা following অনুসরণ করে কমান্ড, পাইপলাইনে কোনও কমান্ড শেষ কিন্তু শেষ, অথবা যদি কমান্ডের ফেরতের মান উল্টানো হচ্ছে!


এছাড়াও খুব ভাল একটি :)
voretaq7

1

চেষ্টা করুন (executable ; exit 0), বা বিকল্পভাবে এটি শেল স্ক্রিপ্টে মোড়ানো করুন যা সর্বদা 0 থেকে বের হয়।


1
এটি বেশিরভাগ ক্ষেত্রেই দুর্দান্ত কাজ করে তবে এটি একটি সাবসেল সেট আপ করে যদি উদাহরণস্বরূপ, (cd foo; exit 0)সফল হয়, আপনি পরে "foo" এ শেষ না হবেন যেহেতু আপনার সিডব্লিউডি আপনি আগে ছিলেন সেই অবস্থায় ফিরে আসবে। তবে cd foo || trueএটি সফল হলে আপনাকে "foo" এ ছেড়ে দেবে।
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

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