نمونه‌ای از تکمیل خط فرمان در بش.
**تکمیل خط فرمان** (به انگلیسی: Command line completion) که **Tab Completion** هم خوانده می‌شود، ویژگی‌ای است که در اکثر مترجم‌های خط فرمان مشترک است که باعث می‌شود برنامه به صورت خودکار فرمان‌های وارد شده از طرف کاربر را تا حدی تکمیل کند.

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

قابلیت **تکمیل خط فرمان** به کاربران اجازه می‌دهد فقط چند حرف ابتدای فرمان، برنامه یا فایل را بنویسند و سپس به راحتی با زدن کلید تکمیل (معمولاً `Tab ↹`)، تکمیل کردن آن را به واسط خط فرمان بسپارند. و سپس کاربر با زدن کلید `Return` یا `↵ Enter` برنامه را اجرا یا فایل را باز می‌کند.

استفاده از **تکمیل خط فرمان** می‌تواند در جاهای مختلفی سودمند باشد. مانند زمانی که دستورهای پراستفادهٔ ما دارای نامی طولانی باشند. در صورت استفاده از این ویژگی کلیدزنی کاربران کاهش پیدا می‌کند. یا در جایی که نوشتن نام فایل از نظر املایی مشکل باشد نیز تکمیل خط فرمان به کمک کاربر می‌آید.

در هنگام استفاده از این ویژگی ممکن است نام چندین برنامه یا فایل با کلمه‌های ابتدائی تایپ شده همخوانی داشته باشند که در اینصورت لیستی از همهٔ آن‌ها در خروجی چاپ می‌شود و کاربر می‌تواند از بین آن‌ها انتخاب کند و برای تکمیل شدن نام برنامه یا فایل چند کارکتر دیگر نیز تایپ کند و دوباره با زدن کلید تکمیل، فرایند تکمیل آن نام خاص را به واسط خط فرمان بسپارد.

بدلیل اینکه اکثر واسط‌های خط فرمان از کلید کلید تب به عنوان کلید تکمیل استفاده می‌کنند، این ویژگی به **tab completion** نیز مشهور است.

نمونه
-----

برای باز کردن فایلی با نام introduction-to-command-line-completion.html در مرورگر وب فایرفاکس می‌توانید در خط فرمان اینطور بنویسید :

```
firefox introduction-to-command-line-completion.html

```

اما این دستور طولانی‌ای برای تایپ کردن است. به جای تایپ همهٔ آن می‌توانیم از ویژگی تکمیل خط فرمان استفاده کنیم.

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

* ابتدا سه حرف ابتدای دستور را تایپ می‌کنیم :

```
fir

```

* سپس کلید `Tab ↹` را می‌فشاریم. به دلیل اینکه در سیستم ما تنها دستوری که با "fir" شروع می‌شود، برنامهٔ "firefox" است، بش آن را به اینصورت تکمیل می‌کند (یک فاصله نیز در انتهای آن قرار می‌دهد) :

```
firefox

```

* شروع به نوشتن نام فایل می‌کنیم

```
firefox i

```

در دایرکتوری فعلی که در آن قرار داریم introduction-to-command-line-completion.html تنها فایلی **نیست** که با حرف "i" شروع می‌شود. در این دایرکتوری فایل‌های introduction-to-bash.html و introduction-to-firefox.html نیز موجود هستند. به همین دلیل بش نمی‌تواند تصمیم بگیرد که منظور ما کدام فایل بوده‌است. اما مطمئن است که باید با "introduction-to-" شروع شود. بنابراین آن را اینطور کامل می‌کند :

```
firefox introduction-to-

```

* حالا، ما کارکتر "c" تایپ می‌کنیم:

```
firefox introduction-to-c

```

* بعد از زدن کلید `Tab ↹` نام فایل به اینصورت تکمیل می‌شود :

```
firefox introduction-to-command-line-completion.html

```

در یک نگاه سریع، ما اینطور تایپ کردیم :

fir`Tab ↹`i`Tab ↹`c`Tab ↹`

ما فقط ۸ بار کلیدزنی کردیم، در صورتی‌که اگر میخواستیم این دستور را بطور کامل و بدون استفاده از ویژگی **تکمیل خط فرمان** از ابتدا بنویسیم، باید ۵۲ حرف را تایپ می‌کردیم که عمل مشکل و خسته‌کننده‌ای بود.