কর্মক্ষেত্রে, আমি ঘন ঘন ব্যাশ স্ক্রিপ্টগুলি লিখি। আমার তত্ত্বাবধায়ক নীচের উদাহরণের মতো পুরো স্ক্রিপ্টটি ফাংশনে বিভক্ত করার পরামর্শ দিয়েছেন:
#!/bin/bash
# Configure variables
declare_variables() {
noun=geese
count=three
}
# Announce something
i_am_foo() {
echo "I am foo"
sleep 0.5
echo "hear me roar!"
}
# Tell a joke
walk_into_bar() {
echo "So these ${count} ${noun} walk into a bar..."
}
# Emulate a pendulum clock for a bit
do_baz() {
for i in {1..6}; do
expr $i % 2 >/dev/null && echo "tick" || echo "tock"
sleep 1
done
}
# Establish run order
main() {
declare_variables
i_am_foo
walk_into_bar
do_baz
}
main
"পাঠযোগ্যতা" ব্যতীত এগুলি করার কি কোনও কারণ আছে, যা আমি মনে করি আরও কয়েকটি মন্তব্য এবং কিছু লাইন ফাঁক দিয়ে সমানভাবে প্রতিষ্ঠিত হতে পারে?
এটি কী স্ক্রিপ্টটিকে আরও দক্ষতার সাথে চালিত করে (আমি আসলে বিপরীতটি আশা করি, যদি কিছু থাকে), বা এটি পূর্বে বর্ণিত পাঠযোগ্যতার সম্ভাবনার বাইরে কোডটি সংশোধন করা সহজ করে তোলে? বা এটি কি কেবল একটি স্টাইলিস্টিক পছন্দ?
দয়া করে মনে রাখবেন যে স্ক্রিপ্টটি এটি ভালভাবে প্রদর্শন করে না, আমাদের প্রকৃত স্ক্রিপ্টগুলিতে ফাংশনগুলির "রান অর্ডার" খুব লিনিয়ার হতে পারে - walk_into_bar
যা i_am_foo
করা জিনিসগুলির উপর নির্ভর করে এবং do_baz
সেট আপ করা স্টাফগুলিতে কাজ করে walk_into_bar
- তাই হচ্ছে রান অর্ডারকে ইচ্ছামত অদলবদল করতে সক্ষম এমন কিছু নয় যা আমরা সাধারণত করতাম। উদাহরণস্বরূপ, আপনি হঠাৎ declare_variables
পরে walk_into_bar
এটি স্থাপন করতে চান না , এটি জিনিসগুলি ভেঙে দেবে।
আমি উপরের লিপিটি কীভাবে লিখব তার একটি উদাহরণ হ'ল:
#!/bin/bash
# Configure variables
noun=geese
count=three
# Announce something
echo "I am foo"
sleep 0.5
echo "hear me roar!"
# Tell a joke
echo "So these ${count} ${noun} walk into a bar..."
# Emulate a pendulum clock for a bit
for i in {1..6}; do
expr $i % 2 >/dev/null && echo "tick" || echo "tock"
sleep 1
done
local
- এটি ভেরিয়েবল স্কোপ সরবরাহ করে যা কোনও তুচ্ছ স্ক্রিপ্টে অবিশ্বাস্যভাবে গুরুত্বপূর্ণ।
main()
শীর্ষে রেখেছি এবংmain "$@"
নীচে এটি কল করতে যুক্ত করব। এটি যখন আপনি এটি খুলবেন তখন আপনাকে উচ্চ স্তরের স্ক্রিপ্ট যুক্তি প্রথম দেখায়।