নিম্নলিখিত বাশের সমতুল্য মাছের শেলটি কী :
echo ${TEST:-1}
ব্যাশে এটি টেস্টের মান প্রিন্ট করে যদি সেখানে একটি বা 1 না থাকে।
নিম্নলিখিত বাশের সমতুল্য মাছের শেলটি কী :
echo ${TEST:-1}
ব্যাশে এটি টেস্টের মান প্রিন্ট করে যদি সেখানে একটি বা 1 না থাকে।
উত্তর:
আমি বিশ্বাস করি আপনার অস্থায়ী পরিবর্তনশীল (বা একটি ফাংশন) প্রয়োজন। যদি $TEST
অস্তিত্ব না থাকে তবে এটি কোনও কিছুর কাছে প্রসারিত নয়, এবং $test_or
কেবল এটি রয়েছে 1
। এটি করার আসল উপায়টি পাওয়া ভাল লাগবে তবে বর্তমানে বাক্য গঠনটি ইস্যু করেছে এবং বেশিরভাগ উদ্দেশ্যে এটি সত্যিই প্রয়োজন বলে মনে হচ্ছে না।
set test_or $TEST 1
echo $test_or[1]
এছাড়াও, যদি আপনি যা চান তা হ'ল $TEST
এটি যদি ইতিমধ্যে বিদ্যমান না থাকে তবে এটি ব্যবহার করতে পারেন set -q
।
set -q TEST; or set TEST 1
echo $TEST
কোনও ভেরিয়েবলের রেফারেন্স দিতে এবং ইন-লাইনে একটি ডিফল্ট মান সরবরাহ করতে আপনি কন্ডিশনাল সমন্বিত কমান্ড বিকল্প ব্যবহার করতে পারেন যা echo
উভয় শাখায় করে।
> echo (if set -q someVar; echo $someVar; else; echo 'a default value'; end)
a default value
> set someVar 42
> echo (if set -q someVar; echo $someVar; else; echo 'a default value'; end)
42
যেহেতু এটি একধরনের ভারবোজ, সেটটি সেট না করা অবস্থায় আপনি ভেরিয়েবলটি অন্য একটি লাইনে আরম্ভ করতে পারেন।
> echo $otherVar
> set -q otherVar; or set otherVar 'a default value'
> echo $otherVar
a default value
আপনি যদি সত্যিই কোনও ডিফল্ট ইন-লাইন প্রতিস্থাপনের ক্ষমতাটি চান তবে আপনি এটি কোনও ফাংশনে ইন্ডিরিয়ারেশন ব্যবহার করে করতে পারেন এবং তারপরে সেই ফাংশনটি কল করতে পারেন।
> function orDefault
set -q $argv[1]; and echo $$argv[1]; or echo $argv[2]
end
>
> echo $moreVar
> echo (orDefault moreVar 'a default value')
a default value
> set moreVar 42
> echo (orDefault moreVar 'a default value')
42