تبدیل مورد
نسخه های اخیر از بر هم زدن از تبدیل رشته ها با حروف بزرگ/کوچک پشتیبانی می کند. بر هم زدن
دارای چهار بسط پارامتر و دو گزینه به اعلام دستور پشتیبانی از آن
بنابراین تبدیل کیس برای چه چیزی خوب است؟ جدا از ارزش زیبایی شناختی آشکار، نقش مهمی در برنامه نویسی دارد. بیایید مورد جستجوی پایگاه داده را در نظر بگیریم. تصور کنید که کاربری رشتهای را در فیلد ورودی داده وارد کرده است که میخواهیم آن را در پایگاه داده جستجو کنیم. این امکان وجود دارد که کاربر مقدار را با تمام حروف بزرگ یا کوچک یا ترکیبی از هر دو وارد کند. ما مطمئناً نمی خواهیم پایگاه داده خود را با هر جابجایی احتمالی املای حروف بزرگ و کوچک پر کنیم. چه باید کرد؟
یک رویکرد رایج برای این مشکل این است که طبیعی کردن ورودی کاربر یعنی تبدیلش کن
قبل از اینکه جستجوی پایگاه داده را انجام دهیم، به یک فرم استاندارد تبدیل شود. ما میتوانیم این کار را با تبدیل تمام کاراکترهای ورودی کاربر به حروف کوچک یا بزرگ انجام دهیم و اطمینان حاصل کنیم که ورودیهای پایگاه داده به همان صورت عادی هستند.
La اعلام دستور را می توان برای عادی سازی رشته ها به حروف بزرگ یا کوچک استفاده کرد. استفاده كردن اعلام، ما می توانیم یک متغیر را مجبور کنیم که همیشه فرمت مورد نظر را داشته باشد بدون توجه به اینکه چه چیزی به آن اختصاص داده شده است:
#! / bin / bash
# ul-declare: نشان دادن تبدیل حروف از طریق declare declare -u upper
اعلام -l پایین تر
اگر [[ $1 ]]؛ سپس
upper="$1" low="$1" echo $upper echo $lower
fi
#! / bin / bash
# ul-declare: نشان دادن تبدیل حروف از طریق declare declare -u upper
اعلام -l پایین تر
اگر [[ $1 ]]؛ سپس
upper="$1" low="$1" echo $upper echo $lower
fi
در اسکریپت بالا استفاده می کنیم اعلام برای ایجاد دو متغیر، بالا و کاهش. مقدار اولین آرگومان خط فرمان (پارامتر موقعیتی 1) را به هر یک از متغیرها اختصاص می دهیم و سپس آنها را روی صفحه نمایش می دهیم:
[me@linuxbox ~]$ ul-اعلان aBc
الفبا
الفبا
[me@linuxbox ~]$ ul-اعلان aBc
الفبا
الفبا
همانطور که می بینیم، آرگومان خط فرمان ("aBc") عادی شده است.
علاوه بر اعلام، چهار بسط پارامتر وجود دارد که تبدیل حروف بزرگ/کوچک را انجام می دهد:
جدول 34-1: بسط پارامترهای تبدیل موردی
فرمت نتیجه
فرمت نتیجه
${پارامتر،،} ارزش را گسترش دهید پارامتر به تمام حروف کوچک
${پارامتر,} ارزش را گسترش دهید پارامتر فقط اولی را تغییر می دهد
کاراکتر به حروف کوچک
${پارامتر^^} ارزش را گسترش دهید پارامتر به تمام حروف بزرگ
${پارامتر^} ارزش را گسترش دهید پارامتر فقط اولی را تغییر می دهد
کاراکتر به حروف بزرگ (حرف بزرگ).
در اینجا یک اسکریپت است که این بسط ها را نشان می دهد:
#! / bin / bash
# ul-param: اگر [[ $1 ]] تبدیل حروف را از طریق بسط پارامتر نشان دهید. سپس
پژواک ${1,,}
echo ${1,} echo ${1^^} echo ${1^}
fi
#! / bin / bash
# ul-param: اگر [[ $1 ]] تبدیل حروف را از طریق بسط پارامتر نشان دهید. سپس
پژواک ${1,,}
echo ${1,} echo ${1^^} echo ${1^}
fi
این اسکریپت در عمل است:
[me@linuxbox ~]$ ul-param aBc
abc aBc ABC
ABc
[me@linuxbox ~]$ ul-param aBc
abc aBc ABC
ABc
مجدداً، اولین آرگومان خط فرمان را پردازش می کنیم و چهار تغییر پشتیبانی شده توسط بسط پارامترها را خروجی می دهیم. در حالی که این اسکریپت از اولین پارامتر موقعیتی استفاده می کند، پارامتر ممکن است هر رشته، متغیر یا عبارت رشته ای باشد.