আমি বাশ 3 এর সাথে কাজ করছি এবং আমি শর্তসাপেক্ষ গঠনের চেষ্টা করছি। সি / C ++, তার মৃত সহজ: ((A || B) && C)
। বাশ-এ, এটি পরিণত হয়নি (আমার মনে হয় গিট লেখকরা অন্য প্রচেষ্টায় যাওয়ার আগে অবশ্যই এই কোডটি অবদান রেখেছিলেন)।
এটা কাজ করে না. নোট যে <0 or 1>
স্ট্রিং আক্ষরিক নয়; এর অর্থ 0 বা 1 (সাধারণত আসে grep -i
)।
A=<0 or 1>
B=<0 or 1>
C=<0 or 1>
if [ [ "$A" -eq "0" ] || [ "$B" -ne "0" ] ] && [ "$C" -eqe "0" ]; then ... fi
এটির ফলাফল:
line 322: syntax error near unexpected token `[['
আমি তখন চেষ্টা করেছি:
A=<0 or 1>
B=<0 or 1>
C=<0 or 1>
if [ ([ "$A" -eq "0" ]) || ([ "$B" -ne "0" ]) ] && [ "$C" -eq "0" ]; then ... fi
এটির ফলাফল:
line 322: syntax error near unexpected token `[['
সমস্যার অংশটি হ'ল অনুসন্ধানের ফলাফলগুলি তুচ্ছ উদাহরণ এবং যৌগিক শর্তযুক্ত আরও জটিল উদাহরণ নয়।
আমি কীভাবে ((A || B) && C)
ব্যাশে সরল পারফর্ম করব?
আমি কেবল এটি তালিকাভুক্ত করা এবং একাধিক ব্লকে একই আদেশগুলি পুনরাবৃত্তি করতে প্রস্তুত:
A=<0 or 1>
B=<0 or 1>
C=<0 or 1>
if [ "$A" -eq "0" ] && [ "$C" -eq "0" ]; then
...
elif [ "$B" -ne "0" ] && [ "$C" -eq "0" ]; then
...
fi