কৌতূহলজনকভাবে, অনেকগুলি শেলের getoptsমধ্যে এই জাতীয় কোনও কাজের সম্ভাব্য প্রার্থী। এটি প্রথমে বিপরীতমুখী মনে হতে পারে, তবে আপনি যদি বিবেচনা করেন যে getopts'প্রাথমিক কাজটি হ'ল একটি নির্দিষ্ট অক্ষর কমান্ড-লাইন বিকল্প হিসাবে চিহ্নিত হওয়া এবং এটির একটি সংক্ষিপ্ত সিরিজে পাওয়া যেতে পারে তত ব্যাখ্যার জন্য উপস্থাপিত করা, এটি কিছুটা তৈরি করা শুরু করতে পারে আরো ধারনা.
bashশেল থেকে, প্রদর্শন করতে :
x=$(printf '\n\r%010s\t' hello)
OPTIND=1
while getopts : na "-$x"
do printf %q\\n "$OPTARG"
done
$'\n'
$'\r'
\
\
\
\
\
h
e
l
l
o
$'\t'
এইভাবে কখনও কখনও getoptsএই জাতীয় ক্ষেত্রে যেমন একরকম শেল অটো-পাইলট হিসাবে বিচ্ছিন্নতা পরিচালনা করতে দেওয়া সুবিধাজনক হতে পারে । আপনি যখন এটি করেন, আপনি কেবল অযাচিত বাইটগুলি ডাব্লু / এ পরীক্ষা করতে পারেন caseবা বাইট 1 থেকে আপনার স্ট্রিং ব্যাক-আপ তৈরি করতে পারেন:[]
OPTIND=1 y=$(printf \\n\\r) z=
while getopts : na "-$x"
do case $OPTARG in ([!$y])
z=$z$OPTARG
esac
done
printf %q\\n "$z"
$' hello\t'
এই সাধারণ উদাহরণস্বরূপ ক্ষেত্রে - এবং একটি শেল দেওয়া হয়েছে যা ইতিমধ্যে অন্য কোথাও উল্লিখিত প্যারামিটার সম্প্রসারণকে সমর্থন করে - বলেছে যে বিস্তৃতি সম্ভবত এখানে আপনাকে আরও ভালভাবে পরিবেশন করবে। তবে আমি ভেবেছিলাম যে getoptsআপনি যদি এই ক্ষেত্রে এর দক্ষতা সম্পর্কে অবগত না হন তবে আপনি অবশ্যই উল্লেখ করার মতো মূল্যবান হতে পারেন। অবশ্যই যখন আমি এটি জানতে পেরেছিলাম তবে এর জন্য আমি অনেক দরকারী অ্যাপ্লিকেশন পেয়েছি।
printf '%q\n' "$string"যে কোনও স্ট্রিংয়ের একটি পালিয়ে যাওয়া সংস্করণ পেতে পারেন । যেমন:printf '%q\n' 'foo\n'->foo\\n;printf '%q\n' $'foo\n'->$'foo\n'