একাধিক কমান্ডের জন্য পাইপফাইলে অনুরূপ কিছু রয়েছে, যেমন 'ট্রাই' স্টেটমেন্টের মতো তবে বাশের মধ্যে। আমি এরকম কিছু করতে চাই:
echo "trying stuff"
try {
command1
command2
command3
}
এবং যে কোনও মুহুর্তে, যদি কোনও কমান্ড ব্যর্থ হয়, ড্রপ আউট এবং সেই আদেশের ত্রুটি প্রতিধ্বনিত হয়। আমি এর মতো কিছু করতে চাই না:
command1
if [ $? -ne 0 ]; then
echo "command1 borked it"
fi
command2
if [ $? -ne 0 ]; then
echo "command2 borked it"
fi
এবং আরও ... বা এর মতো কিছু:
pipefail -o
command1 "arg1" "arg2" | command2 "arg1" "arg2" | command3
কারণ আমি বিশ্বাস করি প্রতিটি আদেশের যুক্তিগুলি (আমি ভুল হলে আমাকে সংশোধন করি) একে অপরের সাথে হস্তক্ষেপ করবে। এই দুটি পদ্ধতি আমার কাছে ভয়াবহভাবে দীর্ঘ-বায়ুযুক্ত এবং কদর্য বলে মনে হচ্ছে তাই আমি এখানে আরও দক্ষ পদ্ধতির জন্য আবেদন করছি।
set -e
একটি ভয়াবহ ধারণা। ইনশালাম.ডে / scmascheck/various/set এ বিভিন্ন শেল '(এবং শেল সংস্করণ') বাস্তবায়নের মধ্যে অসম্পূর্ণতাগুলি দেখায় এমন তুলনা এবং / বা তুলনামূলকভাবে তুলনা করা বাশফ্যাঙ্ক # 105 এর অনুশীলনগুলি দেখুন different -ই ।
set -euo pipefail
।