راهنمای آموزشی اسکریپت نویسی - مقدماتی

لطفا برای بهتر دیدن صفحه از firefox استفاده کنید
Bash Guide for Beginners Machtelt Garrels

راهنمای Bash برای نوآموزان

متغیرها »
« بسط پوسته

کاراکترهای نقل قول

چرا؟

تعداد زیادی از کاراکترها در این یا آن زمینه معنی خاصی دارند. نقل‌قول برای از بین بردن این معنی خاص کاراکترها یا کلمات می‌باشد: نقل‌قول‌ها می‌توانند رفتار ویژه برای کاراکترهای ویژه را غیرفعال کنند، آنها می‌توانند از اینکه کلمات رزرو شده به این عنوان شناسایی شوند، پیش‌گیری کنند و می‌توانند بسط پارامتر را غیرفعال کنند.

کاراکترهای گریز

کاراکترهای گریز برای از بین بردن معنی ویژه یک کاراکتر به کار می‌روند. یک ممیز برعکس( \ ) نقل‌قولی نشده، در Bash به عنوان کاراکتر گریز استفاده می‌شود. این کاراکتر معنی واقعی کاراکتری که بعد از آن می‌آید، به استثنای کاراکتر سطرجدید را حفظ می‌کند. اگر یک کاراکتر سطر جدید بلافاصله پس از ممیز برعکس ظاهر شود، ادامه سطری را علامت‌گذاری می‌کند که طولانی‌تر از عرض ترمینال می‌باشد، ممیز برعکس به طور مؤثر از جریان ورودی صرف‌نظر می‌گردد.

franky ~> date=20021226

franky ~> echo $date
20021226

franky ~> echo \$date
$date

در این مثال، متغیر date برای نگهداری یک مقدار ایجاد وتنظیم شده است. اولین دستور echo مقدار متغیر را نشان می‌دهد، اما دفعه دوم، علامت دلاراز معنی خاص گریخته.

نقل‌قول های یگانه

نقل قول‌های یگانه (' ') برای حفظ معنی واقعی هر کاراکتر محصور شده بین آنها استفاده می‌شوند. یک نقل قول یگانه حتی اگر با \ محافظت شده باشد، نمی‌تواند بین نقل‌قول‌های یگانه قرار گیرد.

با مثال قبلی ادامه می‌دهیم:

franky ~> echo '$date'
$date

نقل‌قول‌های دوگانه

نقل‌قول دوگانه معنی واقعی کاراکترهای محصور شده بین آنها، غیر از علامت دلار، کاراکترbacktick(یا نقل‌قول یگانه برعکس) و \ را حفظ می‌کند.

علامت دلار و علامت برعکس نقل‌قول تکی معنی ویژه خود را در داخل نقل‌قول‌های دوتایی حفظ می‌کنند.

کاراکتر \ فقط وقتی با علامت دلار، backtick، نقل‌قول دوگانه، \ و سطر جدید، دنبال شود معنی ویژه خود را حفظ می‌کند. داخل نقل‌قول دوگانه، کاراکتر \ وقتی با هر کدام از این کاراکترها دنبال شود از جریان ورودی حذف می‌شود. آن کاراکترهای \ که قبل از کاراکترهای بدون معنی خاص آمده باشند، به طور جایگزین نشده برای تفسیر کننده پوسته باقی می‌مانند.

یک کاراکتر نقل‌قول دوگانه می‌تواند با پوشش توسط \ در نقل‌قول‌های دوگانه محصور گردد.

franky ~> echo "$date"
20021226

franky ~> echo "`date`"
Sun Apr 20 11:22:06 CEST 2003

franky ~> echo "I'd say: \"Go for it"'!"'
I'd say: "Go for it!"

franky ~> echo "\"
More input>"

franky ~> echo "\\"
\

بیانANSI-C

باکلمات در شکل بیانی ‎“$'STRING'”‎ به صورت خاصی رفتار می‌شود. کلمه به یک رشته که در آن کاراکترهای backslash-escaped به طوری که در استاندارد ANSI-C تعین شده، جایگزین شده‌اند، بسط می‌یابد. رشته‌های Backslash escape می‌توانند در مستندات Bash یافت شوند.

مناطق

یک رشته محصور شده با علامت‌های نقل‌قول دوگانه که مقدم بر علامت دلار شود، باعث می‌شود رشته مطابق منطقه جاری ترجمه شود. اگر منطقه جاری “C” یا “POSIX” باشد، علامت دلار صرفنظر می‌شود.اگر رشته ترجمه و جایگزین گردد، به صورت نقل‌قول دوگانه خواهد بود.

متغیرها »
« بسط پوسته
ترجمه محمود پهلوانی