Quoting Metacharacter در لینوکس

Quoting Metacharacter در لینوکس

به جلسه پنجم از سری آموزش های لینوکس خوش آمدید در این قسمت به معرفی متاکاراکتر ها در لینوکس میپردازیم . خب  درواقع درون Bash shell چندین کاراکتر دارای معانی و عملکردهای خاصی وجود دارد. به این کاراکترها متاکاراکتر (metacharacter) گفته می شود. متاکاراکترهای Bash shell شامل موارد زیر است :

* ? [ ] ‘ ” \ $ ; & ( ) | ^ < >

به عنوان مثال ، علامت دلار ($) نشان دهنده ی نام متغیر کاراکتر است . وقتی از این متاکاراکتر به همراه دستور echo استفاده می شود ، برنامه سعی می کند مقدار متغیر را بازیابی کرده و نمایش دهد . به مثال زیر دقت کنید :

$ echo $SHELL

/bin/bash

$

$ echo It cost $1.00

It cost .00

$  

در مثال بالا با توجه به متاکاراکتر $ ، فرمان echo هر دو عبارت SHELL$ و 1$ را به عنوان متغیرهای مختلف در نظر می گیرد. از آنجا که 1$ در دستور دوم echo متغیر نیست و هیچ ارزشی ندارد ، در خروجی echo چیزی با 1$ نمایش داده نمی شود . برای رفع این مشکل ، می توانید از shell quoting استفاده کنید. shell quoting به شما امکان می دهد تا از متا کاراکتر ها به عنوان کاراکترهای منظم استفاده کنید. برای این کار ، از backslash (\)  استفاده کنید . دستور زیر به شما در درک مفهوم استفاده از دستور echo و shell quoting در یک متاکاراکتر واحد کمک میکند .

$ echo It cost \$1.00

It cost $1.00

$

$ echo Is Schrodinger\’s cat alive or dead\?

Is Schrodinger’s cat alive or dead?

$

در حالی که بک اسلش برای shell quoting یک متا کاراکتر مفید است ، اما استفاده از آن هنگامی که چندین مورد وجود داشته باشد ، کار خسته کننده ای است . برای راحتی بیشتر ، برای چندین متاکاراکتر ، آنها را بین علامت تک کوتیشن یا دبل کوتیشن قرار دهید. چند مثال shell quoting از چند متاکاراکتر در ادامه آورده شده است .

$ echo Is “Schrodinger’s” cat alive or “dead?”

Is Schrodinger’s cat alive or dead?

$

$ echo “Is Schrodinger’s cat alive or dead?”

Is Schrodinger’s cat alive or dead?

$

$ echo ‘Is Schrodinger’s cat alive or dead?’

> ^C

$

در مثال های بالا توجه کنید که دو روش quoting اول کار می کنند اما روش آخر کار نمیکند . پس هنگامی که متاکاراکتر دارای تک کوتیشن باشد ، باید از روش shell quoting دیگری مانند بک اسلش یا دبل کوتیشن استفاده کنید.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد.