توسع
في كل مرة نكتب أمرًا ونضغط على مفتاح الإدخال ، سحق يقوم بعدة عمليات على النص قبل أن ينفذ أمرنا. لقد رأينا حالتين لكيفية تأثير تسلسل الأحرف البسيط ، على سبيل المثال "*" ، على الكثير من المعنى بالنسبة إلى الغلاف. تسمى العملية التي تجعل هذا يحدث توسع. مع التوسع ، ندخل شيئًا ما ويتم توسيعه إلى شيء آخر قبل أن تعمل الصدفة عليه. لتوضيح ما نعنيه بهذا ، دعنا نلقي نظرة على امتداد صدى أمر. صدى عبارة عن صدفة مبنية تؤدي مهمة بسيطة جدًا. يقوم بطباعة الحجج النصية الخاصة به على الإخراج القياسي:
[me @ linuxbox ~] $ صدى هذا اختبار
هذا اختبار
[me @ linuxbox ~] $ صدى هذا اختبار
هذا اختبار
هذا واضح ومباشر. أي حجة مرت إلى صدى يتم عرضها. لنجرب مثالاً آخر:
[me @ linuxbox ~] $ صدى صوت *
مستندات سطح المكتب ls-output.txt صور الموسيقى القوالب العامة مقاطع الفيديو
[me @ linuxbox ~] $ صدى صوت *
مستندات سطح المكتب ls-output.txt صور الموسيقى القوالب العامة مقاطع الفيديو
إذن ما الذي حدث للتو؟ لماذا لم تفعل صدى مطبعة "*"؟ كما نتذكر من عملنا مع أحرف البدل ، فإن الحرف "*" يعني مطابقة أي أحرف في اسم الملف ، ولكن ما لم نراه في مناقشتنا الأصلية هو كيف تقوم الصدفة بذلك. الإجابة البسيطة هي أن الصدفة توسع "*" إلى شيء آخر (في هذه الحالة ، أسماء الملفات في دليل العمل الحالي) قبل صدى يتم تنفيذ الأمر. عندما يكون مفتاح الدخول هو
عند الضغط عليه ، يقوم shell تلقائيًا بتوسيع أي أحرف مؤهلة في سطر الأوامر قبل تنفيذ الأمر ، لذا فإن صدى الأمر لم ير "*" أبدًا ، فقط نتيجته الموسعة. بمعرفة هذا ، يمكننا أن نرى ذلك صدى تصرفت كما هو متوقع.