একটি সাধারণ উপায় হ'ল:
die() {
IFS=' ' # make sure "$*" is joined with spaces
# output the arguments if any on stderr:
[ "$#" -eq 0 ] || printf '%s\n' "$*" 1>&2
exit 1
}
তারপরে আপনি এটি ব্যবহার করুন:
mkdir -p some/path || die "mkdir failed with status $?"
অথবা আপনি যদি প্রস্থান স্থিতি অন্তর্ভুক্ত করতে চান তবে আপনি এটিকে পরিবর্তন করতে পারেন:
die() {
last_exit_status=$?
IFS=' '
printf '%s\n' "FATAL ERROR: $* (status $last_exit_status)" 1>&2
exit 1
}
এবং তারপরে এটি ব্যবহার করা কিছুটা সহজ:
mkdir -p some/path || die "mkdir failed"
এটি ব্যর্থ হলে, mkdir
সম্ভবত ইতিমধ্যে একটি ত্রুটি বার্তা জারি করেছে, যাতে দ্বিতীয়টি রিডানড্যান্ট হিসাবে দেখা যেতে পারে এবং আপনি ঠিক করতে পারেন:
mkdir -p some/path || exit # with the same (failing) exit status as mkdir's
mkdir -p some/path || exit 1 # with exit status 1 always
(বা die
তর্ক ছাড়াই উপরে প্রথম রূপটি ব্যবহার করুন )
আপনি যদি command1 || command2
আগে না দেখে থাকেন তবে এটি চলে command1
এবং যদি command1
ব্যর্থ হয় তবে এটি চলে command2
।
সুতরাং আপনি এটি "ডিরেক্টরি তৈরি করুন বা মরা" এর মতো পড়তে পারেন।
আপনার উদাহরণটি দেখতে হবে:
mkdir -p some/path || die "mkdir failed"
cd some/path || die "cd failed"
some_command || die "some_command failed"
অথবা আপনি dies
ডানদিকে আরও প্রান্তিককরণ করতে পারেন যাতে মূল কোডটি আরও স্পষ্ট হয়।
mkdir -p some/path || die "mkdir failed"
cd some/path || die "cd failed"
some_command || die "some_command failed"
অথবা নিম্নলিখিত লাইনে কমান্ড লাইনগুলি দীর্ঘ হলে:
mkdir -p some/path ||
die "mkdir failed"
cd some/path ||
die "cd failed"
some_command ||
die "some_command failed"
এছাড়াও, আপনি যদি নামটি some/path
একাধিকবার ব্যবহার করতে চলেছেন তবে এটিকে একটি ভেরিয়েবলে সংরক্ষণ করুন যাতে আপনার এটি টাইপ করতে না হয় এবং আপনার প্রয়োজনে সহজেই এটি পরিবর্তন করতে পারেন। এবং কমান্ডগুলিতে ভেরিয়েবল আর্গুমেন্টগুলি পাস করার সময়, --
অপশনটি ডিলিমিটারটি ব্যবহার করার বিষয়টি নিশ্চিত করুন যাতে আর্গুমেন্টটি যদি এটি শুরু হয় তবে কোনও বিকল্প হিসাবে নেওয়া হবে না -
।
dir=some/path
mkdir -p -- "$dir" || die "Cannot make $dir"
cd -P -- "$dir" || die "Cannot cd to $dir"
some_command || die "Cannot run some_command"