ایستگاه های کاری آنلاین OnWorks Linux و Windows

لوگو

میزبانی آنلاین رایگان برای ایستگاه های کاری

<قبلی | فهرست | بعدی>

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

اولین نوع نقل قولی که به آن نگاه خواهیم کرد این است نقل قول های دوگانه. اگر متن را در داخل quotes دوگانه قرار دهیم، تمام کاراکترهای ویژه استفاده شده توسط پوسته معنای خاص خود را از دست می دهند و به عنوان کاراکترهای معمولی در نظر گرفته می شوند. استثناها عبارتند از "$"، "\" (میل معکوس)، و "`" (به عقب نقل قول). این بدان معناست که تقسیم کلمه، بسط نام مسیر، بسط tilde و بسط مهار مهار شده است، اما بسط پارامتر، بسط حسابی و جایگزینی دستور همچنان انجام می شود. با استفاده از دو نقل قول، می‌توانیم با نام فایل‌های حاوی فضاهای تعبیه‌شده کنار بیاییم. بگو ما قربانی بدبخت پرونده ای به نام شدیم دو کلمه.txt. اگر بخواهیم از این در خط فرمان استفاده کنیم، تقسیم کلمه باعث می شود که به جای آرگومان واحد مورد نظر، به عنوان دو آرگومان جداگانه در نظر گرفته شود:



[me@linuxbox ~]$ ls -l دو کلمه.txt

ls: نمی تواند به دو دسترسی پیدا کند: چنین فایل یا دایرکتوری وجود ندارد

ls: نمی تواند به words.txt دسترسی پیدا کند: چنین فایل یا دایرکتوری وجود ندارد

[me@linuxbox ~]$ ls -l دو کلمه.txt

ls: نمی تواند به دو دسترسی پیدا کند: چنین فایل یا دایرکتوری وجود ندارد

ls: نمی تواند به words.txt دسترسی پیدا کند: چنین فایل یا دایرکتوری وجود ندارد


با استفاده از دو نقل قول، تقسیم کلمه را متوقف می کنیم و به نتیجه دلخواه می رسیم. علاوه بر این، ما حتی می توانیم آسیب را ترمیم کنیم:



[me@linuxbox ~]$ ls -l "two words.txt"

-rw-rw-r-- 1 me me 18 2016-02-20 13:03 two words.txt [me@linuxbox ~]$ mv "two words.txt" two_words.txt

[me@linuxbox ~]$ ls -l "two words.txt"

-rw-rw-r-- 1 me me 18 2016-02-20 13:03 two words.txt [me@linuxbox ~]$ mv "two words.txt" two_words.txt


آنجا! حالا دیگر مجبور نیستیم به تایپ این نقل قول های مزاحم ادامه دهیم.

به یاد داشته باشید، بسط پارامتر، بسط حسابی، و جایگزینی دستور همچنان در دو گیومه انجام می شود:


تصویر

[me@linuxbox ~]$ پژواک "$USER $((2+2)) $(cal)"

من 4 فوریه 2016


Su

Mo

Tu

We

Th

Fr

Sa

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29


ما باید لحظه ای به تأثیر نقل قول های دوگانه در جایگزینی دستور نگاه کنیم. ابتدا اجازه دهید کمی عمیق تر به نحوه عملکرد تقسیم کلمات نگاه کنیم. در مثال قبلی، دیدیم که چگونه تقسیم کلمات برای حذف فضاهای اضافی در متن ما به نظر می رسد:


[me@linuxbox ~]$ پژواک این است

این یک امتحان است

آزمون

[me@linuxbox ~]$ پژواک این است

این یک امتحان است


تصویر

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


[me@linuxbox ~]$ اکو "این یک است

تست"

[me@linuxbox ~]$ اکو "این یک است


این یک امتحان است

این یک امتحان است


تصویر

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

این واقعیت که خطوط جدید با مکانیسم تقسیم کلمه، جداکننده در نظر گرفته می شوند، تأثیر جالب و البته ظریفی را در جایگزینی دستور ایجاد می کند. موارد زیر را در نظر بگیرید:


تصویر

[me@linuxbox ~]$ اکو $(cal)

فوریه 2016 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14

15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

[me@linuxbox ~]$ پژواک "$(cal)"

فوریه 2016


Su

Mo

Tu

We

Th

Fr

Sa

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29


در وهله اول، جایگزینی دستور بدون نقل قول منجر به یک خط فرمان حاوی 38 آرگومان شد. در دوم، یک خط فرمان با یک آرگومان که شامل فضاهای جاسازی شده و خطوط جدید است.


برترین سیستم عامل Cloud Computing در OnWorks: