تعداد زیادی از کاراکترها در این یا آن زمینه معنی خاصی دارند. نقلقول برای از بین بردن این معنی خاص کاراکترها یا کلمات میباشد: نقلقولها میتوانند رفتار ویژه برای کاراکترهای ویژه را غیرفعال کنند، آنها میتوانند از اینکه کلمات رزرو شده به این عنوان شناسایی شوند، پیشگیری کنند و میتوانند بسط پارامتر را غیرفعال کنند.
کاراکترهای گریز برای از بین بردن معنی ویژه یک کاراکتر به کار میروند. یک ممیز برعکس( \ ) نقلقولی نشده، در Bash به عنوان کاراکتر گریز استفاده میشود. این کاراکتر معنی واقعی کاراکتری که بعد از آن میآید، به استثنای کاراکتر سطرجدید را حفظ میکند. اگر یک کاراکتر سطر جدید بلافاصله پس از ممیز برعکس ظاهر شود، ادامه سطری را علامتگذاری میکند که طولانیتر از عرض ترمینال میباشد، ممیز برعکس به طور مؤثر از جریان ورودی صرفنظر میگردد.
franky ~>
date
=20021226
franky ~>
echo$date
20021226franky ~>
echo\$date
$date
در این مثال، متغیر date
برای نگهداری یک مقدار ایجاد وتنظیم شده است. اولین دستور echo مقدار متغیر را نشان میدهد، اما دفعه دوم، علامت دلاراز معنی خاص گریخته.
نقل قولهای یگانه (' ') برای حفظ معنی واقعی هر کاراکتر محصور شده بین آنها استفاده میشوند. یک نقل قول یگانه حتی اگر با \ محافظت شده باشد، نمیتواند بین نقلقولهای یگانه قرار گیرد.
با مثال قبلی ادامه میدهیم:
franky ~>
echo'$date'
$date
نقلقول دوگانه معنی واقعی کاراکترهای محصور شده بین آنها، غیر از علامت دلار، کاراکترbacktick(یا نقلقول یگانه برعکس) و \ را حفظ میکند.
علامت دلار و علامت برعکس نقلقول تکی معنی ویژه خود را در داخل نقلقولهای دوتایی حفظ میکنند.
کاراکتر \ فقط وقتی با علامت دلار، backtick، نقلقول دوگانه، \ و سطر جدید، دنبال شود معنی ویژه خود را حفظ میکند. داخل نقلقول دوگانه، کاراکتر \ وقتی با هر کدام از این کاراکترها دنبال شود از جریان ورودی حذف میشود. آن کاراکترهای \ که قبل از کاراکترهای بدون معنی خاص آمده باشند، به طور جایگزین نشده برای تفسیر کننده پوسته باقی میمانند.
یک کاراکتر نقلقول دوگانه میتواند با پوشش توسط \ در نقلقولهای دوگانه محصور گردد.
franky ~>
echo"$date"
20021226franky ~>
echo"`date`"
Sun Apr 20 11:22:06 CEST 2003franky ~>
echo"I'd say: \"Go for it"'!"'
I'd say: "Go for it!"franky ~>
echo"\"
More input>
"franky ~>
echo"\\"
\