تک کوتیشن (Single Quotes) در خط فرمان لینوکس

اگر نیاز داشته باشیم که همه بسطها را نادیده بگیریم از تککوتیشینها استفاده میکنیم. این مثالی مقایسهای از یک فرمان در سه حالت مختلف «عدم استفاده از کوتیشن»، «استفاده از دابل کوتیشن» و «استفاده از تک کوتیشن» میباشد:
تک کوتیشن (Single Quotes)
1 2 3 4 5 6 |
[me@linuxbox ~]$ echo text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER text /home/me/ls-output.txt a b foo 4 me [me@linuxbox ~]$ echo "text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER" text ~/*.txt {a,b} foo 4 me [me@linuxbox ~]$ echo 'text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER' text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER |
در مثال اول هیچ نوع کوتیشنی قرار داده نشده است. در نتیجه فرمان echo به این صورت عمل میکند: متن text را به صورت ساده نشان میدهد. مسیر ~/*.txt را تفسیر کرده و به صورت //home/me/ls-output.txt نشان میدهد. جانشینی {a,b} را انجام داده و a b را نشان میدهد. $(echo foo) را اجرا کرده و foo را چاپ میکند. $((۲+۲)) را حساب کرده و ۴ را چاپ میکند و $USER را به me که کاربر فعلی است تبدیل میکند.
در مثال دوم متن چاپی در داخل دابل کوتیشن قرار گرفته است. در نتیجه فرمان echo به این صورت عمل میکند: متن text بهصورت ساده چاپ میشود. مسیر ~/*.txt این بار تفسیر نشده و بسط نام مسیر نادیده گرفته شده و خود ~/*.txt چاپ میشود. همینطور بسط جانشینی نادیده گرفته شده و {a,b} به همان صورتی که هست چاپ میشود. Foo به صورت قبل چاپ شده و همچنین بسط حسابی $((۲+۲)) حساب شده و ۴ چاپ میشود. در آخر نیز $USER کاربر فعلی است تفسیر میشود.
ولی در مثال آخر، کل متن چاپی داخل تککوتیشن قرار میگیرد. در این حالت تمامی بسطهای موجود نادیده گرفته شده و متن بالا به صورت کامل به همان صورت موجود در کنسول دوباره چاپ میشود. این ویژگی تککوتیشن است که تمامی بسطها را نادیده میگیرد.